Skip to content

Commit

Permalink
Ci fix
Browse files Browse the repository at this point in the history
  • Loading branch information
olabetskyi committed Jun 5, 2024
1 parent 6a71b26 commit 05a4cb4
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions lib/fwdanalysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -325,15 +325,14 @@ FwdAnalysis::Result FwdAnalysis::checkRecursive(const Token *expr, const Token *
}
if (mWhat == What::Reassign) {
if (parent->variable() && parent->variable()->type() && parent->variable()->type()->isUnionType() && parent->varId() == expr->varId()) {
const Token * tempToken = parent;
while (tempToken && Token::Match(tempToken->astParent(), ".|->"))
tempToken = tempToken->astParent();
if (tempToken->valueType() && Token::Match(tempToken->astParent(), "%assign%") && !Token::Match(tempToken->astParent()->astParent(), "%assign%") && tempToken->astParent()->astOperand1() == tempToken) {
const Token * assignment = tempToken->astParent()->astOperand2();
while (parent && Token::Match(parent->astParent(), ".|->"))
parent = parent->astParent();
if (parent && parent->valueType() && Token::Match(parent->astParent(), "%assign%") && !Token::Match(parent->astParent()->astParent(), "%assign%") && parent->astParent()->astOperand1() == parent) {
const Token * assignment = parent->astParent()->astOperand2();
while (Token::Match(assignment, ".|->") && assignment->varId() != expr->varId())
assignment = assignment->astOperand1();
if (assignment && assignment->varId() != expr->varId())
return Result(Result::Type::WRITE, tempToken->astParent());
return Result(Result::Type::WRITE, parent->astParent());
}
return Result(Result::Type::READ);
}
Expand Down

0 comments on commit 05a4cb4

Please sign in to comment.