Compare commits
3 Commits
f5012508d1
...
92bb44560c
| Author | SHA1 | Date | |
|---|---|---|---|
| 92bb44560c | |||
| 5f3da5d708 | |||
| e5b4d6cc50 |
@@ -527,20 +527,24 @@ void removeDeadCode(SgStatement* func,
|
|||||||
for (auto st = start; st != end; st = st->lexNext())
|
for (auto st = start; st != end; st = st->lexNext())
|
||||||
{
|
{
|
||||||
const int var = st->variant();
|
const int var = st->variant();
|
||||||
if ((var == FOR_NODE || var == WHILE_NODE || var == IF_NODE || var == SWITCH_NODE) &&
|
if ((var == FOR_NODE || var == WHILE_NODE || var == SWITCH_NODE) &&
|
||||||
st->lexNext()->variant() == CONTROL_END)
|
st->lexNext()->variant() == CONTROL_END)
|
||||||
{
|
{
|
||||||
remove.push_back(st);
|
remove.push_back(st);
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
else if (var == IF_NODE)
|
||||||
if (var == IF_NODE)
|
|
||||||
{
|
{
|
||||||
SgStatement* ifS = st;
|
SgStatement* ifS = st;
|
||||||
while (ifS->lexNext()->variant() == ELSEIF_NODE)
|
while (ifS->lexNext()->variant() == ELSEIF_NODE)
|
||||||
ifS = ifS->lexNext();
|
ifS = ifS->lexNext();
|
||||||
|
|
||||||
if (ifS->lexNext()->variant() == CONTROL_END)
|
SgStatement* lastNode = ifS->lastNodeOfStmt();
|
||||||
|
ifS = ifS->lexNext();
|
||||||
|
|
||||||
|
while (ifS->variant() == CONTROL_END && ifS != lastNode)
|
||||||
|
ifS = ifS->lexNext();
|
||||||
|
|
||||||
|
if(ifS == lastNode)
|
||||||
remove.push_back(st);
|
remove.push_back(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user