mirror of git://gcc.gnu.org/git/gcc.git
PR c++/67164 - clean up dead code
* pt.c (iterative_hash_template_arg, template_args_equal): Don't handle ARGUMENT_PACK_SELECT. From-SVN: r238507
This commit is contained in:
parent
30bfa23492
commit
43694e8bbb
|
|
@ -1,3 +1,9 @@
|
||||||
|
2016-07-19 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
PR c++/67164
|
||||||
|
* pt.c (iterative_hash_template_arg, template_args_equal): Don't
|
||||||
|
handle ARGUMENT_PACK_SELECT.
|
||||||
|
|
||||||
2016-07-18 Jakub Jelinek <jakub@redhat.com>
|
2016-07-18 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR c++/70869
|
PR c++/70869
|
||||||
|
|
|
||||||
16
gcc/cp/pt.c
16
gcc/cp/pt.c
|
|
@ -1704,9 +1704,7 @@ iterative_hash_template_arg (tree arg, hashval_t val)
|
||||||
STRIP_NOPS (arg);
|
STRIP_NOPS (arg);
|
||||||
|
|
||||||
if (TREE_CODE (arg) == ARGUMENT_PACK_SELECT)
|
if (TREE_CODE (arg) == ARGUMENT_PACK_SELECT)
|
||||||
/* We can get one of these when re-hashing a previous entry in the middle
|
gcc_unreachable ();
|
||||||
of substituting into a pack expansion. Just look through it. */
|
|
||||||
arg = ARGUMENT_PACK_SELECT_FROM_PACK (arg);
|
|
||||||
|
|
||||||
code = TREE_CODE (arg);
|
code = TREE_CODE (arg);
|
||||||
tclass = TREE_CODE_CLASS (code);
|
tclass = TREE_CODE_CLASS (code);
|
||||||
|
|
@ -7894,17 +7892,7 @@ template_args_equal (tree ot, tree nt)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (ot && TREE_CODE (ot) == ARGUMENT_PACK_SELECT)
|
else if (ot && TREE_CODE (ot) == ARGUMENT_PACK_SELECT)
|
||||||
{
|
gcc_unreachable ();
|
||||||
/* We get here probably because we are in the middle of substituting
|
|
||||||
into the pattern of a pack expansion. In that case the
|
|
||||||
ARGUMENT_PACK_SELECT temporarily replaces the pack argument we are
|
|
||||||
interested in. So we want to use the initial pack argument for
|
|
||||||
the comparison. */
|
|
||||||
ot = ARGUMENT_PACK_SELECT_FROM_PACK (ot);
|
|
||||||
if (nt && TREE_CODE (nt) == ARGUMENT_PACK_SELECT)
|
|
||||||
nt = ARGUMENT_PACK_SELECT_FROM_PACK (nt);
|
|
||||||
return template_args_equal (ot, nt);
|
|
||||||
}
|
|
||||||
else if (TYPE_P (nt))
|
else if (TYPE_P (nt))
|
||||||
{
|
{
|
||||||
if (!TYPE_P (ot))
|
if (!TYPE_P (ot))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue