diff options
-rw-r--r-- | clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp | 9 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/modernize-redundant-void-arg.cpp | 6 |
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; +}; |