https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66659
Bug ID: 66659 Summary: Accepts invalid when undeduced context encountered deducing from a trailing parameter pack Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: hstong at ca dot ibm.com Target Milestone: --- In the call to "f" from "h" below, the deduction for T@0 should find both "fptype" and "Func" and fail. ### SOURCE (<stdin>): template <typename ...T> struct A; void g(); void g(bool); typedef void (*fptype)(); struct Func { operator fptype(); } func; template<typename ...T> void f(A<T ...> *ap, T ...b); void h(A<fptype, fptype> *ap) { f(ap, func, g); } ### COMPILER INVOCATION: g++ -std=c++11 -c -x c++ - ### ACTUAL OUTPUT: (Clean compile). ### EXPECTED OUTPUT: (Error message). ### COMPILER VERSION INFO: Using built-in specs. COLLECT_GCC=/usr/local/gcc-head/bin/g++ COLLECT_LTO_WRAPPER=/usr/local/gcc-head/libexec/gcc/x86_64-unknown-linux-gnu/6.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /home/heads/gcc/gcc-source/configure --prefix=/usr/local/gcc-head --enable-languages=c,c++ --enable-lto --disable-multilib --without-ppl --without-cloog-ppl --enable-checking=release --disable-nls Thread model: posix gcc version 6.0.0 20150623 (experimental) (GCC)