[clang-tools-extra] [clang-tidy][libc] Fix namespace check with macro (PR #68134)
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 5 13:59:49 PDT 2023
================
@@ -45,18 +46,21 @@ void CalleeNamespaceCheck::check(const MatchFinder::MatchResult &Result) {
if (FuncDecl->getBuiltinID() != 0)
return;
- // If the outermost namespace of the function is __llvm_libc, we're good.
+ // If the outermost namespace of the function is a macro that starts with
+ // __llvm_libc, we're good.
const auto *NS = dyn_cast<NamespaceDecl>(getOutermostNamespace(FuncDecl));
- if (NS && NS->getName() == "__llvm_libc")
+ if (NS && Result.SourceManager->isMacroBodyExpansion(NS->getLocation()) &&
+ NS->getName().starts_with(RequiredNamespaceStart))
----------------
PiotrZSL wrote:
Thing that I was concern here, were mainly why starts_with instead of just operator=, are there some other namespaces like __llvm_libc_xyz ? If yes then this is fine, if not then maybe we do not need to change this.
https://github.com/llvm/llvm-project/pull/68134
More information about the cfe-commits
mailing list