summaryrefslogtreecommitdiff
path: root/compilerplugins/clang
diff options
context:
space:
mode:
Diffstat (limited to 'compilerplugins/clang')
-rw-r--r--compilerplugins/clang/test/unnecessaryparen.cxx6
-rw-r--r--compilerplugins/clang/test/vclwidgets.cxx2
-rw-r--r--compilerplugins/clang/unnecessaryparen.cxx6
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)