/cp
2014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
DR 217 again
* decl.c (duplicate_decls): Handle static member functions too.
/testsuite
2014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
DR 217 again
* g++.dg/tc1/dr217-2.C: New.
From-SVN: r213505
+2014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ DR 217 again
+ * decl.c (duplicate_decls): Handle static member functions too.
+
2014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
* cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
;
else if (TREE_CODE (olddecl) == FUNCTION_DECL)
{
- tree t1 = TYPE_ARG_TYPES (TREE_TYPE (olddecl));
- tree t2 = TYPE_ARG_TYPES (TREE_TYPE (newdecl));
+ tree t1 = FUNCTION_FIRST_USER_PARMTYPE (olddecl);
+ tree t2 = FUNCTION_FIRST_USER_PARMTYPE (newdecl);
int i = 1;
- if (TREE_CODE (TREE_TYPE (newdecl)) == METHOD_TYPE)
- t1 = TREE_CHAIN (t1), t2 = TREE_CHAIN (t2);
-
- if (TREE_CODE (TREE_TYPE (newdecl)) == METHOD_TYPE
+ if (DECL_FUNCTION_MEMBER_P (newdecl)
&& CLASSTYPE_TEMPLATE_INFO (CP_DECL_CONTEXT (newdecl)))
{
/* C++11 8.3.6/6.
+2014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ DR 217 again
+ * g++.dg/tc1/dr217-2.C: New.
+
2014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
PR other/61963
--- /dev/null
+// { dg-do compile }
+// DR217: Default arguments for non-template member functions of class
+// templates
+
+template <class T>
+struct S
+{
+ static void foo (int);
+};
+
+template <class T>
+void S<T>::foo (int = 0) // { dg-error "" "default arguments for parameters of member functions of class templates can be specified in the initial declaration only" }
+{ }