22 const MatchFinder::MatchResult &Result) {
23 const auto *D = Result.Nodes.getNodeAs<ParmVarDecl>(
"decl");
27 SourceRange DefaultArgRange = D->getDefaultArgRange();
29 if (DefaultArgRange.getEnd() != D->getEndLoc())
32 if (DefaultArgRange.getBegin().isMacroID()) {
33 diag(D->getBeginLoc(),
34 "declaring a parameter with a default argument is disallowed");
38 SourceLocation StartLocation =
39 D->getName().empty() ? D->getBeginLoc() : D->getLocation();
41 SourceRange RemovalRange(
42 Lexer::getLocForEndOfToken(StartLocation, 0, *Result.SourceManager,
43 Result.Context->getLangOpts()),
44 DefaultArgRange.getEnd());
46 diag(D->getBeginLoc(),
47 "declaring a parameter with a default argument is disallowed")
48 << D << FixItHint::CreateRemoval(RemovalRange);