@@ -103,6 +103,7 @@ void TargetCode::generateFunctionPrologue(TargetCodeRegion *TCR,
103
103
Out << " void " << generateFunctionName (TCR) << " (" ;
104
104
for (auto i = TCR->getCapturedVarsBegin (), e = TCR->getCapturedVarsEnd ();
105
105
i != e; ++i) {
106
+ std::string VarName = (*i)->getDeclName ().getAsString ();
106
107
auto C = TCR->GetReferredOMPClause (*i);
107
108
if (!first) {
108
109
Out << " , " ;
@@ -117,10 +118,10 @@ void TargetCode::generateFunctionPrologue(TargetCodeRegion *TCR,
117
118
int dim = 0 ;
118
119
119
120
std::vector<int > VariableDimensions;
120
- handleArrays (&t, DimString, dim, VariableDimensions, TCR, elemType);
121
+ handleArrays (&t, DimString, dim, VariableDimensions, TCR, elemType, VarName );
121
122
122
123
for (int d : VariableDimensions) {
123
- Out << " unsigned long long __sotoc_vla_dim" << d << " _" << (*i)-> getDeclName (). getAsString () << " , " ;
124
+ Out << " unsigned long long __sotoc_vla_dim" << d << " _" << VarName << " , " ;
124
125
}
125
126
126
127
// set type to void* to avoid warnings from the compiler
@@ -140,7 +141,7 @@ void TargetCode::generateFunctionPrologue(TargetCodeRegion *TCR,
140
141
}
141
142
}
142
143
}
143
- Out << (*i)-> getDeclName (). getAsString () ;
144
+ Out << VarName ;
144
145
}
145
146
Out << " )\n {\n " ;
146
147
@@ -260,7 +261,8 @@ void TargetCode::handleArrays(const clang::ArrayType **t,
260
261
std::list<std::string> &DimString, int &dim,
261
262
std::vector<int > &VariableDims,
262
263
TargetCodeRegion *TCR,
263
- std::string &elemType) {
264
+ std::string &elemType,
265
+ const std::string &ArrayName) {
264
266
auto OrigT = *t;
265
267
266
268
if (!t) {
@@ -281,8 +283,7 @@ void TargetCode::handleArrays(const clang::ArrayType **t,
281
283
DEBUGP (" ArrayType VAT" );
282
284
std::string PrettyStr = " " ;
283
285
llvm::raw_string_ostream PrettyOS (PrettyStr);
284
- clang::PrintingPolicy PP (TCR->GetLangOpts ());
285
- t1->getSizeExpr ()->printPretty (PrettyOS, NULL , PP);
286
+ PrettyOS << " __sotoc_vla_dim" << dim << " _" << ArrayName;
286
287
DimString.push_back (PrettyOS.str ());
287
288
VariableDims.push_back (dim);
288
289
++dim;
@@ -298,6 +299,6 @@ void TargetCode::handleArrays(const clang::ArrayType **t,
298
299
OrigT->getElementType ().getTypePtr ());
299
300
if (*t) {
300
301
// Recursively handle all dimensions
301
- handleArrays (t, DimString, dim, VariableDims, TCR, elemType);
302
+ handleArrays (t, DimString, dim, VariableDims, TCR, elemType, ArrayName );
302
303
}
303
304
}
0 commit comments