aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-06-15 15:58:45 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-06-15 15:58:45 -0400
commit71b8cb011122bec45a6d7c683b392a7d5a6faa7f (patch)
tree51d08548d35e34a24ced944fa0a4f6a3c1c8eedd
parent756bcf03e203d553ea99f834879407bf0585c90a (diff)
downloadgcc-71b8cb011122bec45a6d7c683b392a7d5a6faa7f.zip
gcc-71b8cb011122bec45a6d7c683b392a7d5a6faa7f.tar.gz
gcc-71b8cb011122bec45a6d7c683b392a7d5a6faa7f.tar.bz2
class.c (type_has_user_provided_default_constructor): Use sufficient_parms_p.
* class.c (type_has_user_provided_default_constructor): Use sufficient_parms_p. From-SVN: r160805
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/class.c13
2 files changed, 7 insertions, 9 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7fc5210..07d565d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2010-06-15 Jason Merrill <jason@redhat.com>
+ * class.c (type_has_user_provided_default_constructor): Use
+ sufficient_parms_p.
+
* call.c (is_subseq): Handle ck_aggr, ck_list.
(compare_ics): Treat an aggregate or ambiguous conversion to the
same type as involving the same function.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 14224aa..340fe87 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -4247,7 +4247,7 @@ type_has_user_provided_constructor (tree t)
bool
type_has_user_provided_default_constructor (tree t)
{
- tree fns, args;
+ tree fns;
if (!TYPE_HAS_USER_CONSTRUCTOR (t))
return false;
@@ -4256,14 +4256,9 @@ type_has_user_provided_default_constructor (tree t)
{
tree fn = OVL_CURRENT (fns);
if (TREE_CODE (fn) == FUNCTION_DECL
- && user_provided_p (fn))
- {
- args = FUNCTION_FIRST_USER_PARMTYPE (fn);
- while (args && TREE_PURPOSE (args))
- args = TREE_CHAIN (args);
- if (!args || args == void_list_node)
- return true;
- }
+ && user_provided_p (fn)
+ && sufficient_parms_p (FUNCTION_FIRST_USER_PARMTYPE (fn)))
+ return true;
}
return false;