[Bug c++/69954] New: internal compiler error: in dependent_type_p, at cp/pt.c:21141
Caspar at Kielwein dot de
gcc-bugzilla@gcc.gnu.org
Thu Feb 25 10:18:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69954
Bug ID: 69954
Summary: internal compiler error: in dependent_type_p, at
cp/pt.c:21141
Product: gcc
Version: 5.2.1
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: Caspar at Kielwein dot de
Target Milestone: ---
Created attachment 37788
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37788&action=edit
preprocessed code of reduced example
The attached code triggers an ICE on valid code.
The attached file is a reduced example from production code.
gcc test_range.ii --std=c++14
test_range.ii: In substitution of ‘template<class Container, class> <anonymous
struct>::operator Container() [with Container = auto:1;
<template-parameter-1-2> = <missing>]’:
test_range.ii:18:60: required by substitution of ‘template<class source,
class sink, class ... P> constexpr decltype
((declval<sink>()(declval<source>()((declval<P>)()...)), void_flag()))
void_check(int) [with source = foo()::<lambda()>; sink =
foo()::<lambda(auto:1)>; P = {}]’
test_range.ii:60:62: required by substitution of ‘template<class S, class T>
decltype (invoke_helper<void_check<S, T>(0), S, T>()) connection<source_t,
sink_t>::operator()() [with S = foo()::<lambda()>; T =
foo()::<lambda(auto:1)>]’
test_range.ii:79:44: required from here
test_range.ii:50:32: internal compiler error: in dependent_type_p, at
cp/pt.c:21141
template <typename Container, typename = typename Container::allocator_type>
^
0x60d62c dependent_type_p(tree_node*)
../../src/gcc/cp/pt.c:21141
0x60d960 dependent_scope_p(tree_node*)
../../src/gcc/cp/pt.c:21172
0x603007 make_typename_type(tree_node*, tree_node*, tag_types, int)
../../src/gcc/cp/decl.c:3513
0x615843 tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.c:12576
0x6254b4 type_unification_real
../../src/gcc/cp/pt.c:17151
0x6287fd fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, bool, bool)
../../src/gcc/cp/pt.c:16485
0x5e5af9 add_template_candidate_real
../../src/gcc/cp/call.c:3067
0x5e617c add_template_candidate
../../src/gcc/cp/call.c:3164
0x5e617c add_candidates
../../src/gcc/cp/call.c:5295
0x5e37db build_user_type_conversion_1
../../src/gcc/cp/call.c:3713
0x5e40e0 implicit_conversion
../../src/gcc/cp/call.c:1876
0x5e4e9c add_conv_candidate
../../src/gcc/cp/call.c:2220
0x5e5b5c add_template_candidate_real
../../src/gcc/cp/call.c:3118
0x5ea4be add_template_conv_candidate
../../src/gcc/cp/call.c:3179
0x5ea4be build_op_call_1
../../src/gcc/cp/call.c:4306
0x5ea4be build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
../../src/gcc/cp/call.c:4368
0x6b1eb8 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
../../src/gcc/cp/semantics.c:2426
0x613d55 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../src/gcc/cp/pt.c:15379
0x61314a tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../src/gcc/cp/pt.c:15159
0x614ce0 tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.c:12655
Please submit a full bug report,
Could reproduce with gcc 4.9 and gcc 5.2.1
gcc 6 compiles correctly, ICE does not happen.
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
More information about the Gcc-bugs
mailing list