http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55363
Bug #: 55363 Summary: tuple_size is not a class template Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pl...@agmk.net gcc configured with --enable-symvers=gnu-versioned-namespace doesn't build. tested on git revision a4c4abc (svn trunk 193583). (...) libtool: compile: /home/users/pluto/src/gcc.builddir/./gcc/xgcc -shared-libgcc -B/home/users/pluto/src/gcc.builddir/./gcc -nostdinc++ -L/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/src -L/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/opt/gcc48/x86_64-unknown-linux-gnu/bin/ -B/opt/gcc48/x86_64-unknown-linux-gnu/lib/ -isystem /opt/gcc48/x86_64-unknown-linux-gnu/include -isystem /opt/gcc48/x86_64-unknown-linux-gnu/sys-include -I/home/users/pluto/src/gcc.git/libstdc++-v3/../libgcc -I/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include -I/home/users/pluto/src/gcc.git/libstdc++-v3/libsupc++ -std=gnu++11 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=condition_variable.lo -O1 -gdwarf-4 -g1 -fno-debug-types-section -pipe -O1 -gdwarf-4 -g1 -fno-debug-types-section -pipe -c /home/users/pluto/src/gcc.git/libstdc++-v3/src/c++11/condition_variable.cc -fPIC -DPIC -D_GLIBCXX_SHARED -o condition_variable.o In file included from /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:39:0, from /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/mutex:38, from /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/condition_variable:39, from /home/users/pluto/src/gcc.git/libstdc++-v3/src/c++11/condition_variable.cc:25: /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:273:12: error: 'tuple_size' is not a class template struct tuple_size<array<_Tp, _Nm>> ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:273:37: error: redeclared with 2 template parameters struct tuple_size<array<_Tp, _Nm>> ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:270:11: note: previous declaration 'template<class _Tp> class std::tuple_size' used 1 template parameter class tuple_size; ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:281:12: error: 'tuple_element' is not a class template struct tuple_element<_Int, array<_Tp, _Nm>> ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:281:46: error: redeclared with 3 template parameters struct tuple_element<_Int, array<_Tp, _Nm>> ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/array:278:11: note: previous declaration 'template<long unsigned int _Int, class _Tp> class std::tuple_element' used 2 template parameters class tuple_element; ^ In file included from /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/mutex:38:0, from /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/condition_variable:39, from /home/users/pluto/src/gcc.git/libstdc++-v3/src/c++11/condition_variable.cc:25: /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:917:49: error: template argument 2 is invalid typename std::tuple_element<_Idx, _Tuple>::type>, _Tuple, _Nm>::__type ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:917:63: error: template argument 2 is invalid typename std::tuple_element<_Idx, _Tuple>::type>, _Tuple, _Nm>::__type ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:930:62: error: template argument 4 is invalid std::tuple_size<_Tuple>::value> ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:986:51: error: template argument 1 is invalid typename std::remove_reference<_Tp>::type>::value>::__type __type; ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:986:52: error: expected identifier before '::' token typename std::remove_reference<_Tp>::type>::value>::__type __type; ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:986:54: error: typedef name may not be a nested-name-specifier typename std::remove_reference<_Tp>::type>::value>::__type __type; ^ /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:986:54: error: expected ';' at end of member declaration /home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/include/tuple:986:61: error: '__type' does not name a type typename std::remove_reference<_Tp>::type>::value>::__type __type; ^ make[5]: *** [condition_variable.lo] Error 1 make[5]: Leaving directory `/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/src/c++11' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/users/pluto/src/gcc.builddir/x86_64-unknown-linux-gnu/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/home/users/pluto/src/gcc.builddir' make: *** [all] Error 2