https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64297
Bug ID: 64297 Summary: [5 Regression] ICE: canonical types differ for identical types Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org The followiong valid testcase triggers an ICE on trunk: ================================================= #include <functional> struct A { typedef bool X; template<int> X foo() const; }; std::function<bool(const A*)> b(&A::foo<0>); ================================================= bug.cc:9:43: internal compiler error: canonical types differ for identical types bool() const and A::X() const {aka bool() const} std::function<bool(const A*)> b(&A::foo<0>); ^ 0x74279e comptypes(tree_node*, tree_node*, int) ../../gcc/gcc/cp/typeck.c:1419 0x6b4c31 resolve_address_of_overloaded_function ../../gcc/gcc/cp/class.c:7490 0x5fc3a6 standard_conversion ../../gcc/gcc/cp/call.c:1124 0x609528 implicit_conversion ../../gcc/gcc/cp/call.c:1785 0x60ada2 add_function_candidate ../../gcc/gcc/cp/call.c:2092 0x60bb88 add_template_candidate_real ../../gcc/gcc/cp/call.c:3090 0x60c27c add_template_candidate ../../gcc/gcc/cp/call.c:3132 0x60c27c add_candidates ../../gcc/gcc/cp/call.c:5263 0x608351 build_user_type_conversion_1 ../../gcc/gcc/cp/call.c:3640 0x60982f implicit_conversion ../../gcc/gcc/cp/call.c:1844 0x6090e5 reference_binding ../../gcc/gcc/cp/call.c:1704 0x609544 implicit_conversion ../../gcc/gcc/cp/call.c:1783 0x60ada2 add_function_candidate ../../gcc/gcc/cp/call.c:2092 0x60c2c7 add_candidates ../../gcc/gcc/cp/call.c:5273 0x601d70 build_new_method_call_1 ../../gcc/gcc/cp/call.c:8021 0x601d70 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ../../gcc/gcc/cp/call.c:8217 0x603389 build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) ../../gcc/gcc/cp/call.c:7761 0x76c059 expand_default_init ../../gcc/gcc/cp/init.c:1720 0x76c059 expand_aggr_init_1 ../../gcc/gcc/cp/init.c:1821 0x76cd14 build_aggr_init(tree_node*, tree_node*, int, int) ../../gcc/gcc/cp/init.c:1573 Please submit a full bug report, [etc.] The regression was introduced between 2014-10-24 and 2014-11-14.