| 1555 | |
| 1556 | |
| 1557 | set<SSAVariable> Function::GetMediumLevelILSSAVariablesIfAvailable() |
| 1558 | { |
| 1559 | Ref<MediumLevelILFunction> mlil = this->GetMediumLevelILIfAvailable(); |
| 1560 | if (!mlil) |
| 1561 | return {}; |
| 1562 | |
| 1563 | size_t count; |
| 1564 | BNVariable* vars = BNGetMediumLevelILVariables(mlil->GetObject(), &count); |
| 1565 | |
| 1566 | set<SSAVariable> result; |
| 1567 | for (size_t i = 0; i < count; ++i) |
| 1568 | { |
| 1569 | size_t versionCount; |
| 1570 | size_t* versions = BNGetMediumLevelILVariableSSAVersions(mlil->GetObject(), &vars[i], &versionCount); |
| 1571 | for (size_t j = 0; j < versionCount; ++j) |
| 1572 | result.emplace(vars[i], versions[j]); |
| 1573 | BNFreeILInstructionList(versions); |
| 1574 | } |
| 1575 | |
| 1576 | BNFreeVariableList(vars); |
| 1577 | return result; |
| 1578 | } |
| 1579 | |
| 1580 | |
| 1581 | set<Variable> Function::GetHighLevelILVariablesIfAvailable() |
nothing calls this directly
no test coverage detected