aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-05-15 22:23:59 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-05-15 22:23:59 +0200
commit1f9109426d0b24206fd90c1b46f73bf9f5ee0685 (patch)
treeb24642bedeeaac78a3da5a40a0abc292d8e54a93 /gcc/cp/pt.c
parentf4ce02c5bfc8dbfc34c3b44fde0dd324ab56e82e (diff)
downloadgcc-1f9109426d0b24206fd90c1b46f73bf9f5ee0685.zip
gcc-1f9109426d0b24206fd90c1b46f73bf9f5ee0685.tar.gz
gcc-1f9109426d0b24206fd90c1b46f73bf9f5ee0685.tar.bz2
re PR c++/44148 (C++ genericization/gimplification may clobber templare arguments)
PR c++/44148 * pt.c (tsubst): Unshare template argument. * g++.dg/torture/pr44148.C: New test. From-SVN: r159443
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 1ff1fe2..7a66d36 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -10150,7 +10150,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
}
else
/* TEMPLATE_TEMPLATE_PARM or TEMPLATE_PARM_INDEX. */
- return arg;
+ return unshare_expr (arg);
}
if (level == 1)