diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d4dc5d7146a..76bc8ffaa68 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2019-03-18 Jason Merrill + PR c++/89630 - ICE with dependent using-decl as template arg. + * tree.c (cp_tree_equal): Always return false for USING_DECL. + PR c++/89761 - ICE with sizeof... in pack expansion. * pt.c (argument_pack_element_is_expansion_p): Handle ARGUMENT_PACK_SELECT. diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index af077e795cf..718eed349c6 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -3661,6 +3661,7 @@ cp_tree_equal (tree t1, tree t2) case TEMPLATE_DECL: case IDENTIFIER_NODE: case SSA_NAME: + case USING_DECL: return false; case BASELINK: @@ -3787,14 +3788,6 @@ cp_tree_equal (tree t1, tree t2) DEFERRED_NOEXCEPT_ARGS (t2))); break; - case USING_DECL: - if (DECL_DEPENDENT_P (t1) && DECL_DEPENDENT_P (t2)) - return (cp_tree_equal (USING_DECL_SCOPE (t1), - USING_DECL_SCOPE (t2)) - && cp_tree_equal (DECL_NAME (t1), - DECL_NAME (t2))); - return false; - case LAMBDA_EXPR: /* Two lambda-expressions are never considered equivalent. */ return false;