Skip to content

Commit 4bd18d8

Browse files
committed
Segmentation fault fix
1 parent 59ae0f0 commit 4bd18d8

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lib/Transform/Clang/SplitDecls.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ class ClangSplitter : public RecursiveASTVisitor<ClangSplitter> {
141141
varDeclsNames.pop_back();
142142
}
143143
}
144+
varDeclsStarts.clear();
145+
varDeclsEnds.clear();
146+
varDeclsNames.clear();
144147
if (mClauses.empty() || !isa<CompoundStmt>(S) &&
145148
!isa<ForStmt>(S) && !isa<DoStmt>(S) && !isa<WhileStmt>(S))
146149
return RecursiveASTVisitor::TraverseStmt(S);
@@ -197,11 +200,13 @@ class ClangSplitter : public RecursiveASTVisitor<ClangSplitter> {
197200
isFirstVar = true;
198201
SourceRange toInsert2(Range.getBegin(), S->getEndLoc());
199202
txtStr = Canvas.getRewrittenText(varDeclRange).str();
203+
std::cout << "first varDeclsNum = " << varDeclsNum << " " << txtStr << std::endl;
200204
}
201205
if (varDeclsNum > 1) {
202206
SourceRange prevVarDeclRange(varDeclsStarts.back(), varDeclsEnds.back());
203207
varDeclsStarts.pop_back();
204208
varDeclsEnds.pop_back();
209+
std::cout << Canvas.getRewrittenText(prevVarDeclRange).str() << std::endl;
205210
Canvas.ReplaceText(prevVarDeclRange, "");
206211
txtStr = Canvas.getRewrittenText(varDeclRange).str();
207212
auto it = std::remove(txtStr.begin(), txtStr.end(), ',');
@@ -222,8 +227,10 @@ class ClangSplitter : public RecursiveASTVisitor<ClangSplitter> {
222227
bool VisitDeclStmt(DeclStmt *S) {
223228
if(!(S->isSingleDecl())) {
224229
start = S->getBeginLoc();
225-
if (!isNotSingleFlag)
230+
//if (!isNotSingleFlag) {
231+
std::cout << "hi\n";
226232
varDeclsNum = 0;
233+
//}
227234
isNotSingleFlag = true;
228235
notSingleDeclStart = S->getBeginLoc();
229236
notSingleDeclEnd = S->getEndLoc();

0 commit comments

Comments
 (0)