Go to file
David Malcolm 1abb44f863 Fix ICE on class-template argument deduction (PR c++/88795)
PR c++/88795 reports an ICE building a function_type for a deduction guide
when the substitution into the function signature fails, due to an
error_mark_node being returned from tsubst_arg_types but not being checked
for.  This error_mark_node gets used as the TYPE_ARG_TYPES, leading to
ICEs in various places that assume this is a TREE_LIST.

This patch checks the result of tsubst_arg_types and propagates the failure
if it returns error_mark_node.  It also adds an assertion to
build_function_type, to fail faster if passed in error_mark_node.

gcc/cp/ChangeLog:
	PR c++/88795
	* pt.c (build_deduction_guide): Bail out if tsubst_arg_types
	fails.

gcc/testsuite/ChangeLog:
	PR c++/88795
	* g++.dg/template/pr88795.C: New test.

gcc/ChangeLog:
	PR c++/88795
	* tree.c (build_function_type): Assert that arg_types is not
	error_mark_node.

From-SVN: r267957
2019-01-15 23:29:15 +00:00
config
contrib Remove svn:executable property from a couple of text files 2019-01-12 01:20:04 +01:00
fixincludes
gcc Fix ICE on class-template argument deduction (PR c++/88795) 2019-01-15 23:29:15 +00:00
gnattools
gotools
include PR other/16615 [2/5] 2019-01-09 16:39:49 -05:00
INSTALL
intl
libada
libatomic
libbacktrace PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
libcc1
libcpp
libdecnumber
libffi
libgcc PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
libgfortran re PR libfortran/88776 (Namelist read from stdin: loss of data) 2019-01-14 00:22:00 +00:00
libgo runtime: add padding to FFI type of struct ending with zero-sized field 2019-01-15 23:21:24 +00:00
libgomp [nvptx] Handle assignment to gang-level reduction variable 2019-01-15 10:11:16 +00:00
libhsail-rt
libiberty Implement P0482R5, char8_t: A type for UTF-8 characters and strings 2019-01-14 14:55:51 -05:00
libitm
libobjc PR other/16615 [4/5] 2019-01-09 16:44:56 -05:00
liboffloadmic PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
libphobos Document merge process for dmd, druntime and phobos. 2019-01-12 19:50:41 +00:00
libquadmath
libsanitizer Remove svn:executable property from a couple of text files 2019-01-12 01:20:04 +01:00
libssp
libstdc++-v3 Update value of __cpp_lib_shared_ptr_arrays macro 2019-01-15 13:13:11 +00:00
libvtv
lto-plugin
maintainer-scripts
zlib
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
ar-lib
ChangeLog
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def
Makefile.in Lower sampling rate for autofdo bootstrap 2019-01-15 03:49:45 +00:00
Makefile.tpl Lower sampling rate for autofdo bootstrap 2019-01-15 03:49:45 +00:00
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
symlink-tree
test-driver
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.