When we complain about uses of explicitly-deleted methods, it seems
odd to me to refer to "declared here":

/usr/include/c++/7/bits/stl_pair.h:292:17: error: use of deleted function
 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&)
 [with _Tp = X; _Dp = std::default_delete<X>]'
In file included from /usr/include/c++/7/memory:80:0,
                 from /tmp/test.cc:2:
/usr/include/c++/7/bits/unique_ptr.h:388:7: note: declared here
       unique_ptr(const unique_ptr&) = delete;
       ^~~~~~~~~~

This patch tweaks the wording to say "deleted here" instead.

Successfully bootstrapped&regrtested on x86_64-pc-linux-gnu.

OK for trunk?

Also, is there a way to determine if these are special member functions,
and hence to tweak the wording?  It seems more readable to say:

  "use of deleted copy constructor 'std:unique_ptr<[...snip...]"

rather than just:

  "use of deleted function 'std:unique_ptr<[...snip...]"

e.g. for the special member functions covered by the "Rule of Five"?

gcc/cp/ChangeLog:
        * decl2.c (mark_used): When highlighting the location of
        explicitly-deleted methods, say "deleted here" rather than
        "declared here".

gcc/testsuite/ChangeLog:
        * g++.dg/cpp0x/defaulted13.C: Update for change of wording from
        "declared here" to "deleted here".
        * g++.dg/cpp0x/defaulted2.C: Likewise.
        * g++.dg/cpp0x/defaulted26.C: Likewise.
        * g++.dg/cpp0x/defaulted3.C: Likewise.
        * g++.dg/cpp0x/deleted12.C: Likewise.
        * g++.dg/cpp0x/implicit1.C: Likewise.
        * g++.dg/cpp0x/implicit11.C: Likewise.
        * g++.dg/cpp0x/inh-ctor13.C: Likewise.
        * g++.dg/cpp0x/initlist47.C: Likewise.
        * g++.dg/cpp0x/initlist9.C: Likewise.
        * g++.dg/cpp0x/lambda/lambda-errloc.C: Likewise.
        * g++.dg/cpp0x/lambda/lambda-errloc2.C: Likewise.
        * g++.dg/cpp0x/union4.C: Likewise.
        * g++.dg/template/conv12.C: Likewise.
---
 gcc/cp/decl2.c                                     | 2 +-
 gcc/testsuite/g++.dg/cpp0x/defaulted13.C           | 4 ++--
 gcc/testsuite/g++.dg/cpp0x/defaulted2.C            | 2 +-
 gcc/testsuite/g++.dg/cpp0x/defaulted26.C           | 2 +-
 gcc/testsuite/g++.dg/cpp0x/defaulted3.C            | 2 +-
 gcc/testsuite/g++.dg/cpp0x/deleted12.C             | 2 +-
 gcc/testsuite/g++.dg/cpp0x/implicit1.C             | 2 +-
 gcc/testsuite/g++.dg/cpp0x/implicit11.C            | 2 +-
 gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C            | 2 +-
 gcc/testsuite/g++.dg/cpp0x/initlist47.C            | 2 +-
 gcc/testsuite/g++.dg/cpp0x/initlist9.C             | 2 +-
 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C  | 2 +-
 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C | 2 +-
 gcc/testsuite/g++.dg/cpp0x/union4.C                | 2 +-
 gcc/testsuite/g++.dg/template/conv12.C             | 2 +-
 15 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 2bde588..d2d1f84 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -5013,7 +5013,7 @@ mark_used (tree decl, tsubst_flags_t complain)
        {
          error ("use of deleted function %qD", decl);
          if (!maybe_explain_implicit_delete (decl))
-           inform (DECL_SOURCE_LOCATION (decl), "declared here");
+           inform (DECL_SOURCE_LOCATION (decl), "deleted here");
        }
       return false;
     }
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted13.C 
b/gcc/testsuite/g++.dg/cpp0x/defaulted13.C
index 68dc5d0..89c6171 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted13.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted13.C
@@ -7,13 +7,13 @@ struct NonCopyable {
 };
 
 template<>
-NonCopyable<int>::NonCopyable(NonCopyable<int> const&) = delete; // { 
dg-message "declared" }
+NonCopyable<int>::NonCopyable(NonCopyable<int> const&) = delete; // { 
dg-message "deleted here" }
 
 template<typename T>
 NonCopyable<T>::NonCopyable(NonCopyable<T> const&) = default;
 
 template<>
-NonCopyable<double>::NonCopyable(NonCopyable<double> const&) = delete; // { 
dg-message "declared" }
+NonCopyable<double>::NonCopyable(NonCopyable<double> const&) = delete; // { 
dg-message "deleted here" }
 
 
 int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted2.C 
b/gcc/testsuite/g++.dg/cpp0x/defaulted2.C
index 63be997..269ae78 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted2.C
@@ -42,7 +42,7 @@ struct E
 struct F
 {
   F() = default;
-  F(const F&) = delete;                // { dg-message "declared" }
+  F(const F&) = delete;                // { dg-message "deleted here" }
 };
 
 struct G
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted26.C 
b/gcc/testsuite/g++.dg/cpp0x/defaulted26.C
index f14a0e8..7df6e08 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted26.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted26.C
@@ -1,7 +1,7 @@
 // PR c++/49066
 // { dg-do compile { target c++11 } }
 
-void foo() = delete;           // { dg-message "declared here" }
+void foo() = delete;           // { dg-message "deleted here" }
 void foo();
 
 int main() { foo(); }          // { dg-error "deleted" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted3.C 
b/gcc/testsuite/g++.dg/cpp0x/defaulted3.C
index 75e89c8..e0f1f4e 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted3.C
@@ -4,7 +4,7 @@
 template<class T>
 struct A {
   template<class U>
-  bool operator==(const A<U>&) = delete; // { dg-message "declared" }
+  bool operator==(const A<U>&) = delete; // { dg-message "deleted here" }
   operator bool () { return true; }
 };
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/deleted12.C 
b/gcc/testsuite/g++.dg/cpp0x/deleted12.C
index 770bb9c..e158955 100644
--- a/gcc/testsuite/g++.dg/cpp0x/deleted12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/deleted12.C
@@ -4,7 +4,7 @@
 struct A
 {
   A() {}
-  ~A() = delete;               // { dg-message "declared here" }
+  ~A() = delete;               // { dg-message "deleted here" }
 };
 
 static A a;                    // { dg-error "deleted" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit1.C 
b/gcc/testsuite/g++.dg/cpp0x/implicit1.C
index e784ee4..297127d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/implicit1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/implicit1.C
@@ -15,7 +15,7 @@ D d;                          // { dg-error "deleted" }
 
 struct E
 {
-  ~E() = delete;               // { dg-message "declared here" }
+  ~E() = delete;               // { dg-message "deleted here" }
 };
 
 struct F
diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit11.C 
b/gcc/testsuite/g++.dg/cpp0x/implicit11.C
index 3471ad9..919ffbf 100644
--- a/gcc/testsuite/g++.dg/cpp0x/implicit11.C
+++ b/gcc/testsuite/g++.dg/cpp0x/implicit11.C
@@ -4,7 +4,7 @@
 
 struct A
 {
-  ~A() = delete;               // { dg-message "declared here" }
+  ~A() = delete;               // { dg-message "deleted here" }
 };
 
 struct B: A { };               // { dg-error "deleted" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C 
b/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C
index bd021e6..4bed8fd 100644
--- a/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C
+++ b/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C
@@ -8,7 +8,7 @@ struct A
 
 struct C
 {
-  C() = delete;                        // { dg-message "declared here" }
+  C() = delete;                        // { dg-message "deleted here" }
 };
 
 struct B: A, C
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist47.C 
b/gcc/testsuite/g++.dg/cpp0x/initlist47.C
index 0b34ff9..033083d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/initlist47.C
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist47.C
@@ -1,6 +1,6 @@
 // { dg-do compile { target c++11 } }
 
-struct A { ~A() = delete; };   // { dg-message "declared" }
+struct A { ~A() = delete; };   // { dg-message "deleted here" }
 
 int main()
 {
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist9.C 
b/gcc/testsuite/g++.dg/cpp0x/initlist9.C
index ef806d0..baec4a5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/initlist9.C
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist9.C
@@ -8,7 +8,7 @@ struct b
   b() = default;
   ~b() = default;
   b& operator=(const b&) = delete;
-  b(const b&) = delete;                // { dg-message "declared" "" { target 
c++14_down } }
+  b(const b&) = delete;                // { dg-message "deleted here" "" { 
target c++14_down } }
 
   b(bool _t): t (_t) { }
 };
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C 
b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C
index 3dc7f87..6aeb52e 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C
@@ -5,7 +5,7 @@
 struct A
 {
   A();
-  A(const A& a) = delete;      // { dg-message "declared" }
+  A(const A& a) = delete;      // { dg-message "deleted here" }
 };
 
 int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C 
b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C
index 4ddd38c..3edaf04 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C
@@ -3,7 +3,7 @@
 
 struct A {
   A();
-  A(const A&) = delete;                // { dg-message "declared" }
+  A(const A&) = delete;                // { dg-message "deleted here" }
 };
 
 template <class T>
diff --git a/gcc/testsuite/g++.dg/cpp0x/union4.C 
b/gcc/testsuite/g++.dg/cpp0x/union4.C
index cf9916d..6cf46a2 100644
--- a/gcc/testsuite/g++.dg/cpp0x/union4.C
+++ b/gcc/testsuite/g++.dg/cpp0x/union4.C
@@ -3,7 +3,7 @@
 
 struct SFoo
 {
-  SFoo() =delete;              // { dg-message "declared" }
+  SFoo() =delete;              // { dg-message "deleted here" }
 };
 
 union UFoo                     // { dg-error "deleted" }
diff --git a/gcc/testsuite/g++.dg/template/conv12.C 
b/gcc/testsuite/g++.dg/template/conv12.C
index dea72d6..10122f6 100644
--- a/gcc/testsuite/g++.dg/template/conv12.C
+++ b/gcc/testsuite/g++.dg/template/conv12.C
@@ -4,7 +4,7 @@
 struct C1
 {
   template <class T>
-  operator T() = delete;       // { dg-message "declared here" "" { target 
c++11 } }
+  operator T() = delete;       // { dg-message "deleted here" "" { target 
c++11 } }
   operator bool() { return false; }
 } c1;
 
-- 
1.8.5.3

Reply via email to