Fix elaborating foreach loops (#5285)

This commit is contained in:
Arkadiusz Kozdra
2024-07-19 14:56:30 +02:00
committed by GitHub
parent 43377ed8b0
commit 298faa84ee
3 changed files with 239 additions and 1 deletions
+6 -1
View File
@@ -551,8 +551,13 @@ private:
}
void visit(AstInitArray* nodep) override {
checkNodeInfo(nodep);
iterateChildrenConst(nodep);
if (!m_checkOnly && optimizable()) newValue(nodep, nodep);
}
void visit(AstInitItem* nodep) override {
checkNodeInfo(nodep);
iterateChildrenConst(nodep);
}
void visit(AstEnumItemRef* nodep) override {
checkNodeInfo(nodep);
UASSERT_OBJ(nodep->itemp(), nodep, "Not linked");
@@ -833,7 +838,7 @@ private:
clearOptimizable(nodep, "Array initialization has too few elements, need element "
+ cvtToStr(offset));
} else {
setValue(nodep, itemp);
setValue(nodep, fetchValue(itemp));
}
} else {
clearOptimizable(nodep, "Array select of non-array");