dead code: removing of if-else statement #37
@@ -527,20 +527,24 @@ void removeDeadCode(SgStatement* func,
|
||||
for (auto st = start; st != end; st = st->lexNext())
|
||||
{
|
||||
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)
|
||||
{
|
||||
remove.push_back(st);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (var == IF_NODE)
|
||||
else if (var == IF_NODE)
|
||||
{
|
||||
SgStatement* ifS = st;
|
||||
while (ifS->lexNext()->variant() == ELSEIF_NODE)
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user