http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52030
Bug #: 52030 Summary: ICE with decltype(make_tuple) is a late return type Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pub...@alisdairm.net The following sample code compiles with gcc 4.6.2, but produces and ICE for recent 4.7 builds: #include <tuple> using namespace std; template<typename ...T> auto factory(T... t) -> decltype(make_tuple(t...)) { return make_tuple(t...); } auto main() -> int { auto x = factory(3); } Reported error: tree check: expected tree_list, have in eq_local_specializations, at cp/pt.c:1687 Version info of compiler I am testing with: Using built-in specs. COLLECT_GCC=g++-mp-4.7 COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin11/4.7.0/lto-wrapper Target: x86_64-apple-darwin11 Configured with: ../gcc-4.7-20120121/configure --prefix=/opt/local --build=x86_64-apple-darwin11 --enable-languages=c,c++,objc,obj-c++ --libdir=/opt/local/lib/gcc47 --includedir=/opt/local/include/gcc47 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.7 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.7 --with-gxx-include-dir=/opt/local/include/gcc47/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --enable-stage1-checking --disable-multilib --enable-lto Thread model: posix gcc version 4.7.0 20120121 (experimental) (GCC)