summaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorppalka <ppalka@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-22 02:02:01 +0000
committerppalka <ppalka@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-22 02:02:01 +0000
commitb60244f6804ba9ded6ee6d1f17a8e4a728364135 (patch)
tree02eb57fb5e9765584f17f1d5ba78b110ea6a2458 /gcc/cp/pt.c
parentc8e3e744939ed08d70ca7a21f5601a55a7654103 (diff)
downloadgcc-b60244f6804ba9ded6ee6d1f17a8e4a728364135.tar.gz
Fix PR c++/70096 (wrong code for pointer-to-member-function copy)
gcc/cp/ChangeLog: PR c++/70096 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl. gcc/testsuite/ChangeLog: PR c++/70096 * g++.dg/template/ptrmem30.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234391 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index e8cfb660ad0..45cd1eaaf4f 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -12374,6 +12374,8 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
/* The initializer must not be expanded until it is required;
see [temp.inst]. */
DECL_INITIAL (r) = NULL_TREE;
+ if (VAR_P (r))
+ DECL_MODE (r) = VOIDmode;
if (CODE_CONTAINS_STRUCT (TREE_CODE (t), TS_DECL_WRTL))
SET_DECL_RTL (r, NULL);
DECL_SIZE (r) = DECL_SIZE_UNIT (r) = 0;