================
@@ -720,18 +720,41 @@ bool SimplifyBooleanExprCheck::issueDiag(const ASTContext
&Context,
void SimplifyBooleanExprCheck::replaceWithThenStatement(
const ASTContext &Context, const IfStmt *IfStatement,
const Expr *BoolLiteral) {
+ std::string Replacement = getText(Context, *IfStatement->getThen()).str();
+
+ // Fix: Ensure the body statement ends with a semicolon if it's not a block.
+ if (!Replacement.empty() && Replacement.back() != ';' &&
+ Replacement.back() != '}')
+ Replacement += ";";
+
+ if (const Stmt *Init = IfStatement->getInit()) {
+ // Fix: Add a space between the init statement and the body.
+ Replacement =
+ (Twine("{ ") + getText(Context, *Init) + " " + Replacement + "
}").str();
+ }
issueDiag(Context, BoolLiteral->getBeginLoc(), SimplifyConditionDiagnostic,
- IfStatement->getSourceRange(),
- getText(Context, *IfStatement->getThen()));
+ IfStatement->getSourceRange(), Replacement);
}
void SimplifyBooleanExprCheck::replaceWithElseStatement(
const ASTContext &Context, const IfStmt *IfStatement,
const Expr *BoolLiteral) {
const Stmt *ElseStatement = IfStatement->getElse();
+ std::string Replacement =
+ ElseStatement ? getText(Context, *ElseStatement).str() : "";
+
+ // Fix: Ensure the else statement ends with a semicolon if it exists and
isn't a block.
----------------
zeyi2 wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/172220
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits