diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-03-03 17:47:42 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-03-03 17:47:42 +0000 |
commit | 48b89590f61575cbf365ba996a2bd1ba1561a4ab (patch) | |
tree | 23a144476f61233b585511ba46058dfe06a17c73 | |
parent | 159c0a099f980e76096df2d7ffb70dd061c1dc3b (diff) |
Don't emit unused warning for deleted functions. Fixes rdar://8365684 & http://llvm.org/PR9391.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126950 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/Sema.cpp | 2 | ||||
-rw-r--r-- | test/SemaCXX/unused-functions.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 0c39e13253..bc398f43ff 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -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) diff --git a/test/SemaCXX/unused-functions.cpp b/test/SemaCXX/unused-functions.cpp index cefa9e118a..f164bf2768 100644 --- a/test/SemaCXX/unused-functions.cpp +++ b/test/SemaCXX/unused-functions.cpp @@ -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; } |