https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68763
Bug ID: 68763 Summary: [6 Regression] ICE: in verify_unstripped_args, at cp/pt.c:1132 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Target Milestone: --- Building the boost testsuite shows: trippels@gcc2-power8 tools % ~/gcc_test/usr/local/bin/g++ -w -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -fPIC -m64 -Wextra -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I".." -I"/usr/include/python2.7" -c -o "/home/trippels/boost_testing/results/boost/bin.v2/libs/python/test/args.test/gcc-6.0.0/release/args.o" "../libs/python/test/args.cpp" In file included from ../boost/type_traits/object_traits.hpp:25:0, from ../boost/python/detail/borrowed_ptr.hpp:11, from ../boost/python/borrowed.hpp:9, from ../boost/python/handle.hpp:12, from ../boost/python/to_python_value.hpp:12, from ../boost/python/default_call_policies.hpp:10, from ../boost/python/make_function.hpp:10, from ../boost/python/def.hpp:11, from ../libs/python/test/args.cpp:7: ../boost/type_traits/is_class.hpp: In instantiation of ‘struct boost::is_class<boost::python::tuple (*)(int, double, const char*)>’: ../boost/type_traits/is_empty.hpp:73:5: required from ‘const bool boost::detail::is_empty_impl<boost::python::tuple (*)(int, double, const char*)>::value’ ../boost/type_traits/is_empty.hpp:113:27: required from ‘struct boost::is_empty<boost::python::tuple (*)(int, double, const char*)>’ ../boost/detail/compressed_pair.hpp:340:7: required from ‘class boost::compressed_pair<boost::python::tuple (*)(int, double, const char*), boost::python::default_call_policies>’ ../boost/python/detail/caller.hpp:251:37: required from ‘struct boost::python::detail::caller_arity<3u>::impl<boost::python::tuple (*)(int, double, const char*), boost::python::default_call_policies, boost::mpl::vector4<boost::python::tuple, int, double, const char*> >’ ../boost/python/detail/caller.hpp:167:8: required from ‘struct boost::python::detail::caller<boost::python::tuple (*)(int, double, const char*), boost::python::default_call_policies, boost::mpl::vector4<boost::python::tuple, int, double, const char*> >’ ../boost/python/make_function.hpp:61:19: required from ‘boost::python::api::object boost::python::detail::make_function_aux(F, const CallPolicies&, const Sig&, const keyword_range&, NumKeywords) [with F = boost::python::tuple (*)(int, double, const char*); CallPolicies = boost::python::default_call_policies; Sig = boost::mpl::vector4<boost::python::tuple, int, double, const char*>; NumKeywords = mpl_::int_<3>; boost::python::detail::keyword_range = std::pair<const boost::python::detail::keyword*, const boost::python::detail::keyword*>]’ ../boost/python/make_function.hpp:73:39: required from ‘boost::python::api::object boost::python::detail::make_function_dispatch(F, const CallPolicies&, const Keywords&, mpl_::true_) [with F = boost::python::tuple (*)(int, double, const char*); CallPolicies = boost::python::default_call_policies; Keywords = boost::python::detail::keywords<3ul>; mpl_::true_ = mpl_::bool_<true>]’ ../boost/python/make_function.hpp:124:42: required from ‘boost::python::api::object boost::python::make_function(F, const CallPolicies&, const KeywordsOrSignature&) [with F = boost::python::tuple (*)(int, double, const char*); CallPolicies = boost::python::default_call_policies; KeywordsOrSignature = boost::python::detail::keywords<3ul>]’ ../boost/python/def.hpp:43:45: required from ‘void boost::python::detail::def_from_helper(const char*, const F&, const Helper&) [with F = boost::python::tuple (*)(int, double, const char*); Helper = boost::python::detail::def_helper<boost::python::detail::keywords<3ul>, char [22], boost::python::detail::not_specified, boost::python::detail::not_specified>]’ ../boost/python/def.hpp:103:28: required from ‘void boost::python::def(const char*, F, const A1&, const A2&) [with F = boost::python::tuple (*)(int, double, const char*); A1 = boost::python::detail::keywords<3ul>; A2 = char [22]]’ ../libs/python/test/args.cpp:56:0: required from here ../boost/type_traits/is_class.hpp:105:27: internal compiler error: in verify_unstripped_args, at cp/pt.c:1132 template <class T> struct is_class : public integral_constant<bool, ::boost::detail::is_class_impl<T>::value> {}; ^~~~~~~~ 0x101f556f verify_unstripped_args ../../gcc/gcc/cp/pt.c:1132 0x101f556f retrieve_specialization ../../gcc/gcc/cp/pt.c:1177 0x1025034b instantiate_decl(tree_node*, int, bool) ../../gcc/gcc/cp/pt.c:21477 0x1025a66b instantiate_pending_templates(int) ../../gcc/gcc/cp/pt.c:21895 0x102ab86b c_parse_final_cleanups() ../../gcc/gcc/cp/decl2.c:4579 0x104de983 c_common_parse_file() ../../gcc/gcc/c-family/c-opts.c:1091 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. When adding --save-temps it succeeds trippels@gcc2-power8 tools % ~/gcc_test/usr/local/bin/g++ --save-temps -w -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -fPIC -m64 -Wextra -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I".." -I"/usr/include/python2.7" -c -o "/home/trippels/boost_testing/results/boost/bin.v2/libs/python/test/args.test/gcc-6.0.0/release/args.o" "../libs/python/test/args.cpp" trippels@gcc2-power8 tools % So, I'm not sure how to debug this further.