| 1402 | |
| 1403 | |
| 1404 | void MediumLevelILInstruction::VisitExprs(const std::function<bool(const MediumLevelILInstruction& expr)>& func) const |
| 1405 | { |
| 1406 | if (!func(*this)) |
| 1407 | return; |
| 1408 | switch (operation) |
| 1409 | { |
| 1410 | case MLIL_SET_VAR: |
| 1411 | GetSourceExpr<MLIL_SET_VAR>().VisitExprs(func); |
| 1412 | break; |
| 1413 | case MLIL_SET_VAR_SSA: |
| 1414 | GetSourceExpr<MLIL_SET_VAR_SSA>().VisitExprs(func); |
| 1415 | break; |
| 1416 | case MLIL_SET_VAR_ALIASED: |
| 1417 | GetSourceExpr<MLIL_SET_VAR_ALIASED>().VisitExprs(func); |
| 1418 | break; |
| 1419 | case MLIL_SET_VAR_SPLIT: |
| 1420 | GetSourceExpr<MLIL_SET_VAR_SPLIT>().VisitExprs(func); |
| 1421 | break; |
| 1422 | case MLIL_SET_VAR_SPLIT_SSA: |
| 1423 | GetSourceExpr<MLIL_SET_VAR_SPLIT_SSA>().VisitExprs(func); |
| 1424 | break; |
| 1425 | case MLIL_SET_VAR_FIELD: |
| 1426 | GetSourceExpr<MLIL_SET_VAR_FIELD>().VisitExprs(func); |
| 1427 | break; |
| 1428 | case MLIL_SET_VAR_SSA_FIELD: |
| 1429 | GetSourceExpr<MLIL_SET_VAR_SSA_FIELD>().VisitExprs(func); |
| 1430 | break; |
| 1431 | case MLIL_SET_VAR_ALIASED_FIELD: |
| 1432 | GetSourceExpr<MLIL_SET_VAR_ALIASED_FIELD>().VisitExprs(func); |
| 1433 | break; |
| 1434 | case MLIL_CALL: |
| 1435 | GetDestExpr<MLIL_CALL>().VisitExprs(func); |
| 1436 | for (auto i : GetParameterExprs<MLIL_CALL>()) |
| 1437 | i.VisitExprs(func); |
| 1438 | break; |
| 1439 | case MLIL_CALL_UNTYPED: |
| 1440 | GetDestExpr<MLIL_CALL_UNTYPED>().VisitExprs(func); |
| 1441 | for (auto i : GetParameterExprs<MLIL_CALL_UNTYPED>()) |
| 1442 | i.VisitExprs(func); |
| 1443 | break; |
| 1444 | case MLIL_CALL_SSA: |
| 1445 | GetDestExpr<MLIL_CALL_SSA>().VisitExprs(func); |
| 1446 | for (auto i : GetParameterExprs<MLIL_CALL_SSA>()) |
| 1447 | i.VisitExprs(func); |
| 1448 | break; |
| 1449 | case MLIL_CALL_UNTYPED_SSA: |
| 1450 | GetDestExpr<MLIL_CALL_UNTYPED_SSA>().VisitExprs(func); |
| 1451 | for (auto i : GetParameterExprs<MLIL_CALL_UNTYPED_SSA>()) |
| 1452 | i.VisitExprs(func); |
| 1453 | break; |
| 1454 | case MLIL_SYSCALL: |
| 1455 | for (auto i : GetParameterExprs<MLIL_SYSCALL>()) |
| 1456 | i.VisitExprs(func); |
| 1457 | break; |
| 1458 | case MLIL_SYSCALL_UNTYPED: |
| 1459 | for (auto i : GetParameterExprs<MLIL_SYSCALL_UNTYPED>()) |
| 1460 | i.VisitExprs(func); |
| 1461 | break; |
nothing calls this directly
no test coverage detected