================ @@ -0,0 +1,94 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "RedundantConstCheck.h" +#include "../utils/LexerUtils.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/ASTMatchers/ASTMatchers.h" +#include <optional> + +using namespace clang::ast_matchers; + +namespace clang::tidy::readability { + +static std::optional<Token> +findConstToRemove(const VarDecl *VD, const MatchFinder::MatchResult &Result) { + const SourceManager &SM = *Result.SourceManager; + + const SourceLocation NameBeginLoc = VD->getQualifier() + ? VD->getQualifierLoc().getBeginLoc() + : VD->getLocation(); + + const bool IsPointer = VD->getType()->isPointerType() || + VD->getType()->isNullPtrType() || + VD->getType()->isMemberPointerType(); + + // If the 'findPreviousTokenKind' below fails, + // we know it is a pointer but cannot find the start token. + // This can happen when either type is aliased or `auto` was used. + // e.g: constexpr const auto const str = "hello"; ---------------- vbvictor wrote:
Can we add test-cases with it? Also test `constexpr const auto str = "hello";` https://github.com/llvm/llvm-project/pull/189733 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
