summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp9
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp6
2 files changed, 12 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp b/clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
index e86e8637a18..2c5611b705f 100644
--- a/clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
@@ -116,9 +116,12 @@ void RedundantVoidArgCheck::processFunctionDecl(
const MatchFinder::MatchResult &Result, const FunctionDecl *Function) {
SourceLocation Start = Function->getLocStart();
if (Function->isThisDeclarationADefinition()) {
- SourceLocation BeforeBody =
- Function->getBody()->getLocStart().getLocWithOffset(-1);
- removeVoidArgumentTokens(Result, SourceRange(Start, BeforeBody),
+ SourceLocation End;
+ if (Function->hasBody())
+ End = Function->getBody()->getLocStart().getLocWithOffset(-1);
+ else
+ End = Function->getLocEnd();
+ removeVoidArgumentTokens(Result, SourceRange(Start, End),
"function definition");
} else {
removeVoidArgumentTokens(Result, Function->getSourceRange(),
diff --git a/clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp b/clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp
index b0bdeae78bb..d913929caad 100644
--- a/clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp
+++ b/clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp
@@ -433,3 +433,9 @@ M(void inmacro(void) {})
F(Foo, Bar) {
}
+
+struct DefinitionWithNoBody {
+ DefinitionWithNoBody(void) = delete;
+ // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: {{.*}} in function definition
+ // CHECK-FIXES: DefinitionWithNoBody() = delete;
+};
OpenPOWER on IntegriCloud