diff options
Diffstat (limited to 'compilerplugins/clang')
-rw-r--r-- | compilerplugins/clang/test/unnecessaryparen.cxx | 6 | ||||
-rw-r--r-- | compilerplugins/clang/test/vclwidgets.cxx | 2 | ||||
-rw-r--r-- | compilerplugins/clang/unnecessaryparen.cxx | 6 |
3 files changed, 13 insertions, 1 deletions
diff --git a/compilerplugins/clang/test/unnecessaryparen.cxx b/compilerplugins/clang/test/unnecessaryparen.cxx index cb237c551889..51f792769bc2 100644 --- a/compilerplugins/clang/test/unnecessaryparen.cxx +++ b/compilerplugins/clang/test/unnecessaryparen.cxx @@ -34,6 +34,12 @@ int main() int v1 = (static_cast<short>(1)) + 1; // expected-error {{unnecessary parentheses around cast [loplugin:unnecessaryparen]}} (void)v1; + + // No warnings, used to silence -Wunreachable-code: + if ((false)) { + return 0; + } + x = (true) ? 0 : 1; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/compilerplugins/clang/test/vclwidgets.cxx b/compilerplugins/clang/test/vclwidgets.cxx index 9ead1c905289..c470f991a667 100644 --- a/compilerplugins/clang/test/vclwidgets.cxx +++ b/compilerplugins/clang/test/vclwidgets.cxx @@ -22,7 +22,7 @@ struct Widget : public VclReferenceBase Widget* p = mpParent; (void)p; // test against false+ - p = true ? mpParent.get() : nullptr; + p = (true) ? mpParent.get() : nullptr; } ~Widget() override diff --git a/compilerplugins/clang/unnecessaryparen.cxx b/compilerplugins/clang/unnecessaryparen.cxx index 8a94051d5bf4..02b71694e6ac 100644 --- a/compilerplugins/clang/unnecessaryparen.cxx +++ b/compilerplugins/clang/unnecessaryparen.cxx @@ -224,6 +224,12 @@ void UnnecessaryParen::VisitSomeStmt(const Stmt *parent, const Expr* cond, Strin if (parenExpr) { if (parenExpr->getLocStart().isMacroID()) return; + // Used to silence -Wunreachable-code: + if (isa<CXXBoolLiteralExpr>(parenExpr->getSubExpr()) + && stmtName == "if") + { + return; + } // assignments need extra parentheses or they generate a compiler warning auto binaryOp = dyn_cast<BinaryOperator>(parenExpr->getSubExpr()); if (binaryOp && binaryOp->getOpcode() == BO_Assign) |