diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-04-03 15:27:20 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2013-04-03 15:27:20 +0000 |
commit | 09e7107ed3b33a018864c9e4d17fae88ef8f789b (patch) | |
tree | ca67635f62def4460b24db000e30c85ebc63170e /gcc/cp | |
parent | 53d6adf7123b0bbee265bb22a3405078b686f38f (diff) |
PR debug/56819
* tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT
from args to new_args.
(strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to
r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT.
* g++.dg/debug/pr56819.C: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch@197421 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/tree.c | 13 |
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ed12abfcbf1..d0e34c679a5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2013-04-03 Jakub Jelinek <jakub@redhat.com> + + PR debug/56819 + * tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT + from args to new_args. + (strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to + r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT. + 2013-04-02 Jason Merrill <jason@redhat.com> PR c++/56821 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 1ef6f07b3f3..9476aee1320 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1255,8 +1255,13 @@ strip_typedefs (tree t) changed = true; } if (changed) - fullname = lookup_template_function (TREE_OPERAND (fullname, 0), - new_args); + { + NON_DEFAULT_TEMPLATE_ARGS_COUNT (new_args) + = NON_DEFAULT_TEMPLATE_ARGS_COUNT (args); + fullname + = lookup_template_function (TREE_OPERAND (fullname, 0), + new_args); + } else ggc_free (new_args); } @@ -1389,8 +1394,8 @@ strip_typedefs_expr (tree t) r = copy_node (t); for (i = 0; i < n; ++i) TREE_VEC_ELT (r, i) = (*vec)[i]; - SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT - (r, GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (t)); + NON_DEFAULT_TEMPLATE_ARGS_COUNT (r) + = NON_DEFAULT_TEMPLATE_ARGS_COUNT (t); } else r = t; |