Skip to content

Commit 5f970d8

Browse files
committed
removefirstprivate: wrong counter initialization fix
1 parent ae90977 commit 5f970d8

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

lib/Transform/Clang/RemoveFirstPrivate.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ static int getDimensionsNum(QualType qt, std::vector<int>& default_dimensions) {
5555
bool sizeIsKnown = true;
5656
while(1) {
5757
if (qt -> isArrayType()) {
58-
auto at = qt->getAsArrayTypeUnsafe();
58+
auto at = qt -> getAsArrayTypeUnsafe();
5959
auto t = dyn_cast_or_null<ConstantArrayType>(at);
6060
if (sizeIsKnown && t) { // get size
6161
uint64_t dim = t -> getSize().getLimitedValue();
@@ -133,9 +133,7 @@ class DeclVisitor : public RecursiveASTVisitor<DeclVisitor> {
133133
Pragma P(*S);
134134

135135
if (findClause(P, ClauseId::RemoveFirstPrivate, mClauses)) {
136-
137136
auto locationForInits = S -> getEndLoc();
138-
139137
isInPragma = true;
140138
ast = RecursiveASTVisitor::TraverseStmt(S);
141139
isInPragma = false;
@@ -163,7 +161,7 @@ class DeclVisitor : public RecursiveASTVisitor<DeclVisitor> {
163161
int intCounter = it - varStack.top().dimensions.begin();
164162
std::string strCounter = "i" + std::to_string(intCounter);
165163
indeces += "[" + strCounter + "]";
166-
txtStr += "for (int " + strCounter + "; " + strCounter + " < " +
164+
txtStr += "for (int " + strCounter + " = 0; " + strCounter + " < " +
167165
std::to_string(*it) + "; " + strCounter + "++) {\n";
168166
}
169167
if (varStack.top().rvalIsArray) {
@@ -223,7 +221,6 @@ class DeclVisitor : public RecursiveASTVisitor<DeclVisitor> {
223221
if (waitingForVar) { // get lvalue
224222
ValueDecl *vd = Ex -> getDecl();
225223
QualType qt = vd -> getType();
226-
std::string typeStr = qt.getCanonicalType().getAsString();
227224
vars tmp;
228225

229226
tmp.lvalName = varName;
@@ -235,7 +232,6 @@ class DeclVisitor : public RecursiveASTVisitor<DeclVisitor> {
235232
if (qt -> isArrayType() || qt -> isPointerType()) {
236233
varStack.top().rvalIsArray = true;
237234
}
238-
std::string typeStr = qt.getCanonicalType().getAsString();
239235
varStack.top().rvalName = varName;
240236
if (varStack.top().dimensionsNum > 0) {
241237
waitingForDimensions = true;

0 commit comments

Comments
 (0)