shader/CFG: fixed test generation
Some checks failed
Formatting check / formatting-check (push) Has been cancelled
Build RPCSX / build-linux (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.1-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.2-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.4-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.5-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv9-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv9.1-a) (push) Has been cancelled
Build RPCSX / build-android (x86_64, x86-64) (push) Has been cancelled

This commit is contained in:
DH 2025-10-08 13:13:10 +03:00
parent 3986f77869
commit b358d6b2c9

View file

@ -502,18 +502,25 @@ std::string CFG::genTest() {
for (auto node : getPreorderNodes()) {
auto name = ns.getNameOf(node->getLabel());
if (node->getSuccessorCount() == 1) {
result += " createBranch(_" +
result += " createBranch(_" + name + ", _" +
ns.getNameOf((*node->getSuccessors().begin())->getLabel()) +
");\n";
} else if (node->getSuccessorCount() == 2) {
auto firstIt = node->getSuccessors().begin();
auto secondIt = std::next(firstIt);
result += " createConditionalBranch(_" +
result += " createConditionalBranch(_" + name + ", _" +
ns.getNameOf((*firstIt)->getLabel()) + ", _" +
ns.getNameOf((*secondIt)->getLabel()) + ");\n";
} else if (node->getSuccessorCount() == 0) {
result += " createReturn(_" + name + ");\n";
} else {
result += " createSwitch(_" + name;
for (auto succ : node->getSuccessors()) {
result += ", _" + ns.getNameOf(succ->getLabel());
}
result += ");\n";
}
}