aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2009-04-13 14:54:40 -0400
committerJason Merrill <jason@gcc.gnu.org>2009-04-13 14:54:40 -0400
commitc1b93f2b526a6beca6a15968fc6938fdfe5b50bc (patch)
treef87d11d554fc0607e6bf07a77dfb9cf818f88128 /gcc/cp
parentf7dd18640e80412e1b3982afc6b5099177c9fb67 (diff)
downloadgcc-c1b93f2b526a6beca6a15968fc6938fdfe5b50bc.zip
gcc-c1b93f2b526a6beca6a15968fc6938fdfe5b50bc.tar.gz
gcc-c1b93f2b526a6beca6a15968fc6938fdfe5b50bc.tar.bz2
re PR c++/39750 (ICE in uses_template_parms, at cp/pt.c:6332)
PR c++/39750 * pt.c (uses_template_parms): Handle CONSTRUCTOR. From-SVN: r146006
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/call.c4
-rw-r--r--gcc/cp/pt.c1
3 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 744941c..905b6e4 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/39750
+ * pt.c (uses_template_parms): Handle CONSTRUCTOR.
+
2009-04-12 Jason Merrill <jason@redhat.com>
PR c++/39742
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 24a5bcc..869146e 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -5391,7 +5391,9 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
else
{
/* We must only copy the non-tail padding parts.
- Use __builtin_memcpy for the bitwise copy. */
+ Use __builtin_memcpy for the bitwise copy.
+ FIXME fix 22488 so we can go back to using MODIFY_EXPR
+ instead of an explicit call to memcpy. */
tree arg0, arg1, arg2, t;
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 8dd3579..2fd6257 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6325,6 +6325,7 @@ uses_template_parms (tree t)
|| TREE_CODE (t) == BASELINK
|| TREE_CODE (t) == IDENTIFIER_NODE
|| TREE_CODE (t) == TRAIT_EXPR
+ || TREE_CODE (t) == CONSTRUCTOR
|| CONSTANT_CLASS_P (t))
dependent_p = (type_dependent_expression_p (t)
|| value_dependent_expression_p (t));