[clang-tools-extra] [clang-tidy] Enhance container-data-pointer-check to suggest `c_str` for consts (PR #190590)
Gaurav Dhingra via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 6 04:22:35 PDT 2026
================
@@ -112,16 +155,18 @@ void ContainerDataPointerCheck::check(const MatchFinder::MatchResult &Result) {
if (NeedsParens)
ReplacementText = "(" + ReplacementText + ")";
- if (CE->getType()->isPointerType())
- ReplacementText += "->data()";
- else
- ReplacementText += ".data()";
+ ReplacementText += CE->getType()->isPointerType() ? "->" : ".";
+ ReplacementText += UseCStr ? "c_str()" : "data()";
+ llvm::StringRef Description = UseCStr
+ ? "'c_str' should be used for accessing "
+ "the data pointer instead of taking "
+ "the address of the 0-th element"
+ : "'data' should be used for accessing the "
+ "data pointer instead of taking "
+ "the address of the 0-th element";
const FixItHint Hint =
- FixItHint::CreateReplacement(UO->getSourceRange(), ReplacementText);
- diag(UO->getBeginLoc(),
- "'data' should be used for accessing the data pointer instead of taking "
- "the address of the 0-th element")
- << Hint;
+ FixItHint::CreateReplacement(ReplacementRange, ReplacementText);
+ diag(UO->getBeginLoc(), Description) << Hint;
----------------
gxyd wrote:
Addressed. I've fixed it now to use `%select` now.
https://github.com/llvm/llvm-project/pull/190590
More information about the cfe-commits
mailing list