r345122 - [Sema] Do not show unused parameter warnings when body is skipped
Ilya Biryukov via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 24 01:29:24 PDT 2018
Author: ibiryukov
Date: Wed Oct 24 01:29:24 2018
New Revision: 345122
URL: http://llvm.org/viewvc/llvm-project?rev=345122&view=rev
Log:
[Sema] Do not show unused parameter warnings when body is skipped
Summary: Without the function body, we cannot determine is parameter was used.
Reviewers: ioeric, sammccall
Reviewed By: sammccall
Subscribers: arphaman, cfe-commits
Differential Revision: https://reviews.llvm.org/D53456
Added:
cfe/trunk/test/Index/skipped-bodies-unused.cpp
Modified:
cfe/trunk/lib/Sema/SemaDecl.cpp
Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=345122&r1=345121&r2=345122&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Wed Oct 24 01:29:24 2018
@@ -13037,7 +13037,7 @@ Decl *Sema::ActOnFinishFunctionBody(Decl
if (!FD->isInvalidDecl()) {
// Don't diagnose unused parameters of defaulted or deleted functions.
- if (!FD->isDeleted() && !FD->isDefaulted())
+ if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody())
DiagnoseUnusedParameters(FD->parameters());
DiagnoseSizeOfParametersAndReturnValue(FD->parameters(),
FD->getReturnType(), FD);
@@ -13132,7 +13132,8 @@ Decl *Sema::ActOnFinishFunctionBody(Decl
assert(MD == getCurMethodDecl() && "Method parsing confused");
MD->setBody(Body);
if (!MD->isInvalidDecl()) {
- DiagnoseUnusedParameters(MD->parameters());
+ if (!MD->hasSkippedBody())
+ DiagnoseUnusedParameters(MD->parameters());
DiagnoseSizeOfParametersAndReturnValue(MD->parameters(),
MD->getReturnType(), MD);
Added: cfe/trunk/test/Index/skipped-bodies-unused.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/skipped-bodies-unused.cpp?rev=345122&view=auto
==============================================================================
--- cfe/trunk/test/Index/skipped-bodies-unused.cpp (added)
+++ cfe/trunk/test/Index/skipped-bodies-unused.cpp Wed Oct 24 01:29:24 2018
@@ -0,0 +1,8 @@
+// RUN: env CINDEXTEST_SKIP_FUNCTION_BODIES=1 c-index-test -test-load-source all %s -Wunused-parameter 2>&1 \
+// RUN: | FileCheck %s
+
+// No 'unused parameter' warnings should be shown when skipping the function bodies.
+inline int foo(int used, int unused) {
+ used = 100;
+}
+// CHECK-NOT: warning: unused parameter
More information about the cfe-commits
mailing list