Skip to content

Commit bd92730

Browse files
committed
Make sure InnerCall is std::min or std::max when generating replacement
1 parent 219096f commit bd92730

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,19 @@ std::string MinMaxUseInitializerListCheck::generateReplacement(
153153
for (const Expr *Arg : Result.Args) {
154154
QualType ArgType = Arg->getType();
155155

156-
// check if expression is std::min or std::max
157156
if (const auto *InnerCall = dyn_cast<CallExpr>(Arg)) {
158-
if (InnerCall->getDirectCallee() &&
159-
InnerCall->getDirectCallee()->getNameAsString() !=
160-
TopCall->getDirectCallee()->getNameAsString()) {
161-
FindArgsResult innerResult = findArgs(Match, InnerCall);
162-
ReplacementText += generateReplacement(Match, InnerCall, innerResult) +=
163-
"})";
164-
continue;
157+
if (InnerCall->getDirectCallee()) {
158+
std::string InnerCallNameStr =
159+
InnerCall->getDirectCallee()->getNameAsString();
160+
161+
if (InnerCallNameStr != TopCall->getDirectCallee()->getNameAsString() &&
162+
(InnerCallNameStr == "std::min" ||
163+
InnerCallNameStr == "std::max")) {
164+
FindArgsResult innerResult = findArgs(Match, InnerCall);
165+
ReplacementText +=
166+
generateReplacement(Match, InnerCall, innerResult);
167+
continue;
168+
}
165169
}
166170
}
167171

0 commit comments

Comments
 (0)