This patch fixes the case in which the loop directive is nested within a parallel directive. This patch ensures that the iteration variable has a valid var declaration in the local declare map when the for statement is emitted.
Details
Details
Diff Detail
Diff Detail
Event Timeline
| clang/lib/CodeGen/CGStmtOpenMP.cpp | ||
|---|---|---|
| 7865 | if (const auto *ForS = dyn_cast<ForStmt>(CS); !ForS || !isa<DeclStmt>(ForS->getInit())) {
...
} else {
CGF.EmitStmt(CS);
} | |
if (const auto *ForS = dyn_cast<ForStmt>(CS); !ForS || !isa<DeclStmt>(ForS->getInit())) { ... } else { CGF.EmitStmt(CS); }