]> granicus.if.org Git - clang/commitdiff
Don't emit unused warning for deleted functions. Fixes rdar://8365684 & http://llvm...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 3 Mar 2011 17:47:42 +0000 (17:47 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 3 Mar 2011 17:47:42 +0000 (17:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126950 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/Sema.cpp
test/SemaCXX/unused-functions.cpp

index 0c39e132539393ebd69534ec28b7df3087043182..bc398f43ff5dc462a2f7d0f747dfb8df2338317d 100644 (file)
@@ -451,6 +451,8 @@ void Sema::ActOnEndOfTranslationUnit() {
         const FunctionDecl *DiagD;
         if (!FD->hasBody(DiagD))
           DiagD = FD;
+        if (DiagD->isDeleted())
+          continue; // Deleted functions are supposed to be unused.
         Diag(DiagD->getLocation(),
              isa<CXXMethodDecl>(DiagD) ? diag::warn_unused_member_function
                                        : diag::warn_unused_function)
index cefa9e118a48e04e4ddfcd89c5b27e0cf6faab7a..f164bf2768461847d43c675f0c2f259c8aab37c3 100644 (file)
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -fsyntax-only -Wunused -verify %s
+// RUN: %clang_cc1 -std=c++0x -fsyntax-only -Wunused -verify %s
 
 static int foo(int x) { return x; }
 
@@ -6,3 +6,5 @@ template<typename T>
 T get_from_foo(T y) { return foo(y); }
 
 int g(int z) { return get_from_foo(z); }
+
+namespace { void f() = delete; }