From: Argyrios Kyrtzidis Date: Thu, 3 Mar 2011 17:47:42 +0000 (+0000) Subject: Don't emit unused warning for deleted functions. Fixes rdar://8365684 & http://llvm... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48b89590f61575cbf365ba996a2bd1ba1561a4ab;p=clang 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 --- 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(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 T get_from_foo(T y) { return foo(y); } int g(int z) { return get_from_foo(z); } + +namespace { void f() = delete; }