@ -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);