Go to file
Janne Blomqvist 9f3dcd1414 PR 78534 Reinstate better string copy algorithm
As part of the change to larger character lengths, the string copy
algorithm was temporarily pessimized to get around some spurious
-Wstringop-overflow warnings.  Having tried a number of variations of
this algorithm I have managed to get it down to one spurious warning,
only with -O1 optimization, in the testsuite.  This patch reinstates
the optimized variant and modifies this one testcase to ignore the
warning.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>

	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.

gcc/testsuite/ChangeLog:

2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>

	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.

From-SVN: r257233
2018-01-31 15:23:20 +02:00
INSTALL
config
contrib * download_prerequisites: Use shasum for FreeBSD and DragonFly. 2018-01-29 13:30:02 +00:00
fixincludes
gcc PR 78534 Reinstate better string copy algorithm 2018-01-31 15:23:20 +02:00
gnattools
gotools Makefile.am (GOTOOLS_TEST_TIMEOUT): Define. 2018-01-19 05:04:51 +00:00
include
intl
libada
libatomic
libbacktrace elf.c (elf_open_debugfile_by_debuglink): Don't check CRC if the desired CRC is zero. 2018-01-25 18:14:04 +00:00
libcc1
libcpp re PR preprocessor/69869 (internal compiler error: Segmentation fault in call to skip_macro_block_comment when using '-traditional-cpp') 2018-01-31 09:31:52 +01:00
libdecnumber
libffi
libgcc [ARC] Add support for reduced register file set 2018-01-26 12:34:00 +01:00
libgfortran re PR fortran/37577 ([meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15) 2018-01-30 18:20:27 +00:00
libgo internal/syscall/unix: add randomTrap for sh/shbe 2018-01-30 04:48:55 +00:00
libgomp re PR libgomp/84096 (Wrong prototype for omp_init_nest_lock_with_hint() in "omp.h.in") 2018-01-30 00:38:01 +01:00
libhsail-rt
libiberty simple-object-xcoff.c (simple_object_xcoff_find_sections): Use ulong_type to avoid warning about 32-bit shift. 2018-01-21 05:01:31 +00:00
libitm
libmpx
libobjc
liboffloadmic
libquadmath
libsanitizer
libssp
libstdc++-v3 Remove duplicate "//" in comment 2018-01-29 14:09:52 +00:00
libvtv
lto-plugin
maintainer-scripts gcc_release (build_sources): Use getconf to get at the number of cores in the system and pass -jN to gcc_build. 2018-01-25 10:22:38 +00:00
zlib
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog Add Boris Kolpackov <boris@codesynthesis.com> to MAINTAINERS 2018-01-18 12:36:31 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
MAINTAINERS Add Boris Kolpackov <boris@codesynthesis.com> to MAINTAINERS 2018-01-18 12:36:31 +00:00
Makefile.def
Makefile.in
Makefile.tpl
README
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
depcomp
install-sh
libtool-ldflags
libtool.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing
mkdep
mkinstalldirs
move-if-change
symlink-tree
ylwrap

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.