| 1615 | |
| 1616 | |
| 1617 | set<SSAVariable> Function::GetHighLevelILSSAVariablesIfAvailable() |
| 1618 | { |
| 1619 | Ref<HighLevelILFunction> hlil = this->GetHighLevelILIfAvailable(); |
| 1620 | if (!hlil) |
| 1621 | return {}; |
| 1622 | |
| 1623 | size_t count; |
| 1624 | BNVariable* vars = BNGetHighLevelILVariables(hlil->GetObject(), &count); |
| 1625 | |
| 1626 | set<SSAVariable> result; |
| 1627 | for (size_t i = 0; i < count; ++i) |
| 1628 | { |
| 1629 | size_t versionCount; |
| 1630 | size_t* versions = BNGetHighLevelILVariableSSAVersions(hlil->GetObject(), &vars[i], &versionCount); |
| 1631 | for (size_t j = 0; j < versionCount; ++j) |
| 1632 | result.emplace(vars[i], versions[j]); |
| 1633 | BNFreeILInstructionList(versions); |
| 1634 | } |
| 1635 | |
| 1636 | BNFreeVariableList(vars); |
| 1637 | return result; |
| 1638 | } |
| 1639 | |
| 1640 | |
| 1641 | void Function::CreateAutoVariable( |
nothing calls this directly
no test coverage detected