Shader_IR: mark labels as unused for partial decompile.
This commit is contained in:
parent
47e4f6a52c
commit
0366c18d87
|
@ -497,9 +497,7 @@ void ASTManager::Decompile() {
|
|||
}
|
||||
}
|
||||
if (can_remove) {
|
||||
auto& manager = label->GetManager();
|
||||
manager.Remove(label);
|
||||
labels.erase(it);
|
||||
label->MarkLabelUnused();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,6 +112,7 @@ class ASTLabel {
|
|||
public:
|
||||
ASTLabel(u32 index) : index{index} {}
|
||||
u32 index;
|
||||
bool unused{};
|
||||
};
|
||||
|
||||
class ASTGoto {
|
||||
|
@ -204,6 +205,13 @@ public:
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
void MarkLabelUnused() const {
|
||||
auto inner = std::get_if<ASTLabel>(&data);
|
||||
if (inner) {
|
||||
inner->unused = true;
|
||||
}
|
||||
}
|
||||
|
||||
Expr GetIfCondition() const {
|
||||
auto inner = std::get_if<ASTIfThen>(&data);
|
||||
if (inner) {
|
||||
|
|
Reference in New Issue