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.