From b0764e0b2d8d129f73b2946c062150f1362ebb88 Mon Sep 17 00:00:00 2001 From: Peter Klausler Date: Sat, 29 Oct 2022 16:00:24 -0700 Subject: [PATCH] [flang] Recode a line to dodge a clang warning Rewrite a correct use of "&" -- conjunction without short-circuiting -- from a recent patch into multiple lines so that clang doesn't warn about it. --- flang/lib/Semantics/expression.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp index 6fa4827..603fb87 100644 --- a/flang/lib/Semantics/expression.cpp +++ b/flang/lib/Semantics/expression.cpp @@ -356,8 +356,10 @@ bool ExpressionAnalyzer::CheckPolymorphic(const DataRef &dataRef) { } bool ExpressionAnalyzer::CheckDataRef(const DataRef &dataRef) { - // '&' here prevents short-circuiting - return CheckRanks(dataRef) & CheckPolymorphic(dataRef); + // Always check both, don't short-circuit + bool ranksOk{CheckRanks(dataRef)}; + bool polyOk{CheckPolymorphic(dataRef)}; + return ranksOk && polyOk; } // Parse tree correction after a substring S(j:k) was misparsed as an -- 2.7.4