https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94938
Bug ID: 94938
Summary: internal compiler error: in
value_dependent_expression_p, at cp/pt.c:26522
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mpolacek at gcc dot gnu.org
Target Milestone: ---
template <typename> struct S { S(); S(bool); };
struct C {
bool operator()(S<float>);
};
S<float> fn (bool);
template<typename T> void
foo (T)
{
S<float> s;
S<float> x = fn(false || C()(s));
}
int main ()
{
foo(int());
}
$ ./cc1plus -quiet bz.C -std=c++98
bz.C: In instantiation of ‘void foo(T) [with T = int]’:
bz.C:18:12: required from here
bz.C:13:25: internal compiler error: in value_dependent_expression_p, at
cp/pt.c:26522
13 | S<float> x = fn(false || C()(s));
| ~~~~~~^~~~~~~~~
0xc0d67f value_dependent_expression_p(tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.c:26522
0xc0dcea value_dependent_expression_p(tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.c:26627
0xc0e0be value_dependent_expression_p(tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.c:26691
0xbbf63c uses_template_parms(tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.c:10622
0xbeddd8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:19421
0xbef8f8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:19741
0xbeb350 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:18748
0xbdb8ea tsubst_init
/home/mpolacek/src/gcc/gcc/cp/pt.c:16255
0xbe5278 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:17982
0xbe3b50 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:17830
0xbe6785 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:18149
0xc0a5dc instantiate_decl(tree_node*, bool, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:25709
0xc0af95 instantiate_pending_templates(int)
/home/mpolacek/src/gcc/gcc/cp/pt.c:25825
0xa6d8e2 c_parse_final_cleanups()
/home/mpolacek/src/gcc/gcc/cp/decl2.c:4889
0xd4e6e2 c_common_parse_file()
/home/mpolacek/src/gcc/gcc/c-family/c-opts.c:1212