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.

Reply via email to