Go to file
Richard Sandiford 886456e210 Check for invalid FAILs
This patch makes it a compile-time error for an internal-fn optab
to FAIL.  There are certainly other optabs and patterns besides these
that aren't allowed to fail, but this at least deals with the immediate
point of controversy.

Tested normally on x86_64-linux-gnu.  Also tested by building one
configuration per cpu directory.  arc-elf and pdp11 didn't build
for unrelated reasons, but I checked that insn-emit.o built for
both without error.

gcc/
	* Makefile.in (GENSUPPORT_H): New macro.
	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
	(build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
	(build/gencodes.o, build/genconditions.o, build/genconfig.o)
	(build/genconstants.o, build/genextract.o, build/genflags.o)
	(build/gentarget-def.o): Use it.
	(build/genemit.o): Likewise.  Depend on internal-fn.def.
	* genopinit.c: Move block comment to optabs.def.
	(optab_tag, optab_def): Move to gensupport.h
	(pattern): Likewise, renaming to optab_pattern.
	(match_pattern): Move to gensupport.c
	(gen_insn): Use find_optab.
	(patterns, pattern_cmp): Replace pattern with optab_pattern.
	(main): Likewise.  Use num_optabs.
	* optabs.def: Add comment that was previously in genopinit.c.
	* gensupport.h (optab_tag): Moved from genopinit.c
	(optab_def): Likewise, expanding commentary.
	(optab_pattern): Likewise, after renaming from pattern.
	(optabs, num_optabs, find_optab): Declare.
	* gensupport.c (optabs): Moved from genopinit.c.
	(num_optabs): New variable.
	(match_pattern): Moved from genopinit.c.
	(find_optab): New function, extracted from genopinit.c:gen_insn.
	* genemit.c (nofail_optabs): New variable.
	(emit_c_code): New function.
	(gen_expand): Check whether the instruction is an optab that isn't
	allowed to fail.  Call emit_c_code.
	(gen_split): Call emit_c_code here too.
	(main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.

From-SVN: r231160
2015-12-02 09:06:28 +00:00
boehm-gc
config
contrib
fixincludes
gcc Check for invalid FAILs 2015-12-02 09:06:28 +00:00
gnattools
gotools
include PR other/61321 - demangler crash on casts in template parameters 2015-11-27 14:48:21 +00:00
INSTALL
intl
libada
libatomic
libbacktrace
libcc1
libcilkrts
libcpp PR 62314: add ability to add fixit-hints to a diagnostic 2015-11-20 20:08:47 +00:00
libdecnumber
libffi
libgcc fptr.c (__canonicalize_funcptr_for_compare): Initialize fixup values if saved GOT address doesn't match runtime address. 2015-12-01 23:59:20 +00:00
libgfortran re PR fortran/52251 (Nonadvancing I/O and the t edit descriptor) 2015-11-23 00:40:51 +00:00
libgo re PR go/61303 (gccgo: segfault, regression since 4.8.2) 2015-11-26 00:24:21 +00:00
libgomp OpenACC host_data support. 2015-12-01 15:52:23 +00:00
libiberty PR other/61321 - demangler crash on casts in template parameters 2015-11-27 14:48:21 +00:00
libitm libitm: Use multiplicative hashing in the multi-lock TM method. 2015-11-26 16:10:54 +00:00
libjava
libmpx
libobjc
liboffloadmic
libquadmath
libsanitizer Move ptrace.h to appropriate place. 2015-11-24 14:24:46 +02:00
libssp
libstdc++-v3 Define path::_Cmpt after specializing path::__is_encoded_char 2015-12-01 11:33:17 +00:00
libvtv Port libvtv to Solaris 2015-11-25 10:30:25 +00:00
lto-plugin re PR lto/67548 (LTO drops weak binding with "ld -r") 2015-11-25 23:05:07 +00:00
maintainer-scripts
zlib 2015-11-23 Matthias Klose <doko@ubuntu.com> 2015-11-23 20:27:57 +00:00
.dir-locals.el
.gitignore
ABOUT-NLS
ChangeLog re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check) 2015-12-01 21:15:35 +01:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure Sync top level configure with binutils-gdb. 2015-11-20 14:24:07 +00:00
configure.ac Sync top level configure with binutils-gdb. 2015-11-20 14:24:07 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4 * libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols. 2015-11-26 08:20:59 -05:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check) 2015-12-01 21:15:35 +01:00
Makefile.in re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check) 2015-12-01 21:15:35 +01:00
Makefile.tpl
missing
mkdep
mkinstalldirs
move-if-change
README
symlink-tree
ylwrap

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.