https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118069
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- clang++ also seems to take a lot of time, so maybe just a pathological testcase. $ gstack 825429 #0 0x000000000043f437 in tree_operand_check (__t=0x7fd9dd833360, __i=0, __f=0x3cd1798 "/home/mpolacek/src/gcc/gcc/cp/constraint.cc", __l=330, __g=0x3cd18d8 "parameter_mapping_equivalent_p") at /home/mpolacek/src/gcc/gcc/tree.h:4228 #1 0x00000000004b488c in parameter_mapping_equivalent_p (t1=0x7fd9dd833360, t2=0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/cp/constraint.cc:330 #2 0x00000000004b5ae2 in atomic_constraints_identical_p (t1=0x7fd9dd833360, t2=0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/cp/constraint.cc:775 #3 0x00000000004bf447 in atom_hasher::equal (t1=0x7fd9dd833360, t2=0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/cp/cp-tree.h:8730 #4 0x00000000004c1ddc in hash_table<atom_hasher, false, xcallocator>::find_with_hash (this=0x44e5c4c8, comparable=@0x7ffd716f0ed0: 0x7fd9dd833360, hash=3481497497) at /home/mpolacek/src/gcc/gcc/hash-table.h:999 #5 0x00000000005f10ef in hash_set<tree_node*, false, atom_hasher>::contains (this=0x44e5c4c8, k=@0x7ffd716f0ed0: 0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/hash-set.h:78 #6 0x00000000005f05ec in clause::contains (this=0x44e5c4b0, t=0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:166 #7 0x00000000005ef8d3 in derive_atomic_proof (c=..., t=0x7fd9dd833360) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:691 #8 0x00000000005ef981 in derive_proof (c=..., t=0x7fd9dd833360, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:712 #9 0x00000000005ef820 in derive_proof_for_both_operands (c=..., t=0x7fd9dded0708, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:673 #10 0x00000000005ef96c in derive_proof (c=..., t=0x7fd9dded0708, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:710 #11 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9ddf8b280, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #12 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9ddf8b280, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #13 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9dd846780, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #14 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9dd846780, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #15 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9dd846a28, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #16 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9dd846a28, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #17 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9dd66a050, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #18 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9dd66a050, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #19 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9dd672500, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #20 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9dd672500, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #21 0x00000000005ef7dc in derive_proof_for_both_operands (c=..., t=0x7fd9dd710aa0, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:671 #22 0x00000000005ef96c in derive_proof (c=..., t=0x7fd9dd710aa0, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:710 #23 0x00000000005ef7dc in derive_proof_for_both_operands (c=..., t=0x7fd9dd7e6bb8, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:671 #24 0x00000000005ef96c in derive_proof (c=..., t=0x7fd9dd7e6bb8, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:710 #25 0x00000000005ef86c in derive_proof_for_either_operand (c=..., t=0x7fd9d8cb66e0, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:681 #26 0x00000000005ef936 in derive_proof (c=..., t=0x7fd9d8cb66e0, r=right) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:705 #27 0x00000000005efbb5 in subsumes_constraints_nonnull (lhs=0x7fd9d8cb66e0, rhs=0x7fd9d8cb6578) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:816 #28 0x00000000005efc90 in subsumes (lhs=0x7fd9d8cb66e0, rhs=0x7fd9d8cb6578) at /home/mpolacek/src/gcc/gcc/cp/logic.cc:839 #29 0x00000000004bd569 in more_constrained (d1=0x7fd9dce1b550, d2=0x7fd9dceec990) at /home/mpolacek/src/gcc/gcc/cp/constraint.cc:2929 #30 0x00000000007c9cc9 in more_specialized_partial_spec (tmpl=0x7fd9dd8505d8, pat1=0x7fd9d85aa6b8, pat2=0x7fd9d85a60f0) at /home/mpolacek/src/gcc/gcc/cp/pt.cc:26191 #31 0x00000000007cb78c in most_specialized_partial_spec (target=0x7fd9d8799888, complain=3, rechecking=false) at /home/mpolacek/src/gcc/gcc/cp/pt.cc:26615 #32 0x000000000077e5c1 in instantiate_class_template (type=0x7fd9d8799888) at /home/mpolacek/src/gcc/gcc/cp/pt.cc:12435 #33 0x0000000000876d09 in complete_type (type=0x7fd9d8799888) at /home/mpolacek/src/gcc/gcc/cp/typeck.cc:138 #34 0x0000000000876d32 in complete_type_or_maybe_complain (type=0x7fd9d8799888, value=0x0, complain=0) at /home/mpolacek/src/gcc/gcc/cp/typeck.cc:151 #35 0x0000000000799ca7 in tsubst (t=0x7fd9dd851dc8, args=0x7fd9d879e9d8, complain=0, in_decl=0x0) at /home/mpolacek/src/gcc/gcc/cp/pt.cc:16990 #36 0x0000000000781a43 in tsubst_template_arg (t=0x7fd9dd851dc8, args=0x7fd9d879e9d8, complain=0, in_decl=0x0) at /home/mpolacek/src/gcc/gcc/cp/pt.cc:12937