~ubuntu-branches/debian/sid/gcc-4.8/sid

« back to all changes in this revision

Viewing changes to .svn/pristine/cb/cb1b3631e2aee589ff3ce0df980f8b05a5319dcf.svn-base

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-12-19 19:48:34 UTC
  • Revision ID: package-import@ubuntu.com-20141219194834-4dz1q7rrn5pad823
Tags: 4.8.4-1
* GCC 4.8.4 release.
  - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
    PR sanitizer/64265 (wrong code).
* Require recent binutils to pass go test failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: Fix PR c++/57211, don't warn about unused parameters of defaulted functions.
 
2
 
 
3
/cp
 
4
2013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
5
 
 
6
        PR c++/57211
 
7
        * method.c (defaultable_fn_check): Avoid do_warn_unused_parameter
 
8
        warnings about defaulted functions.
 
9
 
 
10
/testsuite
 
11
2013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
12
 
 
13
        PR c++/57211
 
14
        * g++.dg/cpp0x/Wunused-parm.C: New.
 
15
 
 
16
--- a/src/gcc/cp/method.c
 
17
+++ b/src/gcc/cp/method.c
 
18
@@ -1864,13 +1864,19 @@ defaultable_fn_check (tree fn)
 
19
     }
 
20
   else
 
21
     {
 
22
-      tree t = FUNCTION_FIRST_USER_PARMTYPE (fn);
 
23
-      for (; t && t != void_list_node; t = TREE_CHAIN (t))
 
24
+      for (tree t = FUNCTION_FIRST_USER_PARMTYPE (fn);
 
25
+          t && t != void_list_node; t = TREE_CHAIN (t))
 
26
        if (TREE_PURPOSE (t))
 
27
          {
 
28
            error ("defaulted function %q+D with default argument", fn);
 
29
            break;
 
30
          }
 
31
+
 
32
+      /* Avoid do_warn_unused_parameter warnings.  */
 
33
+      for (tree p = FUNCTION_FIRST_USER_PARM (fn); p; p = DECL_CHAIN (p))
 
34
+       if (DECL_NAME (p))
 
35
+         TREE_NO_WARNING (p) = 1;
 
36
+
 
37
       if (TYPE_BEING_DEFINED (DECL_CONTEXT (fn)))
 
38
        /* Defer checking.  */;
 
39
       else if (!processing_template_decl)
 
40
--- a/src/gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C
 
41
+++ b/src/gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C
 
42
@@ -0,0 +1,23 @@
 
43
+// PR c++/57211
 
44
+// { dg-options "-std=c++11 -Wunused-parameter" }
 
45
+
 
46
+template <class T> T&& move(T&);
 
47
+
 
48
+struct A
 
49
+{
 
50
+  struct B
 
51
+  {
 
52
+    B& operator=(B&&);
 
53
+  };
 
54
+
 
55
+  B f;
 
56
+
 
57
+  A& operator=(A&& p) = default;
 
58
+};
 
59
+
 
60
+int main()
 
61
+{
 
62
+  A a;
 
63
+  A b;
 
64
+  b = move(a);
 
65
+}