Go to file
Patrick Palka 098cf31aa2 c++: Missing SFINAE with lookup_fnfields [PR78446]
Here we're failing to do SFINAE in build_op_call when looking up the
class's operator() via lookup_fnfields, which calls lookup_member always
with complain=tf_warning_or_error; from there we would complain
about an ambiguous lookup for operator().

This patch fixes this by adding a tsubst_flags_t parameter to
lookup_fnfields and adjusting all its callers appropriately.

gcc/cp/ChangeLog:

	PR c++/78446
	* call.c (build_op_call): Pass complain to lookup_fnfields.
	(build_special_member_call): Likewise.
	* class.c (type_requires_array_cookie): Pass tf_warning_or_error
	to lookup_fnfields.
	* cp-tree.h (lookup_fnfields): Add tsubst_flags_t parameter.
	* except.c (build_throw): Pass tf_warning_or_error to
	lookup_fnfields.
	* init.c (build_new_1): Pass complain to lookup_fnfields.
	* method.c (locate_fn_flags): Likewise.
	* name-lookup.c (lookup_name_real_1): Pass tf_warning_or_error
	to lookup_fnfields.
	* pt.c (tsubst_baselink): Pass complain to lookup_fnfields.
	* search.c (lookup_fnfields): New 'complain' parameter.  Pass it
	to lookup_member.

gcc/testsuite/ChangeLog:

	PR c++/78446
	* g++.dg/template/sfinae31.C: New test.
2020-05-14 12:56:18 -04:00
config x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
contrib Add tests for gcc-changelog. 2020-05-14 13:59:36 +02:00
fixincludes
gcc c++: Missing SFINAE with lookup_fnfields [PR78446] 2020-05-14 12:56:18 -04:00
gnattools
gotools
include Do not use HAVE_DOS_BASED_FILE_SYSTEM for Cygwin. 2020-04-17 09:22:51 +02:00
INSTALL
intl intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] 2020-04-16 11:55:00 +02:00
libada
libatomic x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libbacktrace x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libcc1 x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libcpp x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libdecnumber x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libffi libffi/test: Fix compilation for build sysroot 2020-04-25 21:27:14 +01:00
libgcc x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libgfortran Removed double ChangeLog entries from previous commit. 2020-05-14 18:37:18 +02:00
libgo libgo: build syscall test with -static 2020-05-13 11:45:55 -07:00
libgomp Removed double ChangeLog entries from previous commit. 2020-05-14 18:37:18 +02:00
libhsail-rt
libiberty Enable CET in cross compiler if possible 2020-05-12 10:39:54 -07:00
libitm x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libobjc x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
liboffloadmic Add missing ChangeLog entries. 2020-05-05 16:10:13 +02:00
libphobos switchcontext.S: Include <cet.h> and use _CET_ENDBR 2020-05-08 15:13:25 -07:00
libquadmath x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libsanitizer x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libssp x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libstdc++-v3 x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
libvtv x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
lto-plugin Enable CET in cross compiler if possible 2020-05-12 10:39:54 -07:00
maintainer-scripts Adjust crontab. 2020-04-30 19:25:03 +02:00
zlib x86: Default CET run-time support to auto 2020-05-14 09:05:02 -07:00
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
ar-lib
ChangeLog [gcn] Don't default to building target-libstdc++-v3 [PR92713] 2020-04-29 09:28:01 +02:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure [gcn] Don't default to building target-libstdc++-v3 [PR92713] 2020-04-29 09:28:01 +02:00
configure.ac [gcn] Don't default to building target-libstdc++-v3 [PR92713] 2020-04-29 09:28:01 +02:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh Do not use HAVE_DOS_BASED_FILE_SYSTEM for Cygwin. 2020-04-17 09:22:51 +02:00
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS MAINTAINERS: add myself for write after approval 2020-04-22 09:39:44 +02:00
Makefile.def Merge top-level configury changes from gdb 2020-04-09 06:52:55 -06:00
Makefile.in Merge top-level configury changes from gdb 2020-04-09 06:52:55 -06:00
Makefile.tpl
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.