10 #include "clang/AST/ASTContext.h"
11 #include "clang/ASTMatchers/ASTMatchFinder.h"
19 void VariadicFunctionDefCheck::registerMatchers(MatchFinder *Finder) {
23 functionDecl(isDefinition(), isVariadic(), unless(isExternC()))
28 void VariadicFunctionDefCheck::check(
const MatchFinder::MatchResult &Result) {
29 const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(
"func");
31 diag(FD->getLocation(),
32 "do not define a C-style variadic function; consider using a function "
33 "parameter pack or currying instead");