diff --git a/passes/cmds/select.cc b/passes/cmds/select.cc index 1ed1987c8..c34cf43c6 100644 --- a/passes/cmds/select.cc +++ b/passes/cmds/select.cc @@ -1509,15 +1509,13 @@ struct SelectPass : public Pass { log_assert(!design->selection_stack.empty()); if (clear_mode) { - design->pop_selection(); - design->push_full_selection(); + design->selection() = RTLIL::Selection::FullSelection(design); design->selected_active_module = std::string(); return; } if (none_mode) { - design->pop_selection(); - design->push_empty_selection(); + design->selection() = RTLIL::Selection::EmptySelection(design); return; } diff --git a/tests/select/boxes_dummy.ys b/tests/select/boxes_dummy.ys deleted file mode 100644 index 67d59bdf1..000000000 --- a/tests/select/boxes_dummy.ys +++ /dev/null @@ -1,13 +0,0 @@ -read_verilog -specify boxes.v -clean - -echo on -select -list -select -count -select -count * -select -count top -select -count top/w:* -select -list =* -select -count =* -select -clear -select -assert-count 9 =?b diff --git a/tests/select/boxes_stack.ys b/tests/select/boxes_stack.ys new file mode 100644 index 000000000..8c2eb7526 --- /dev/null +++ b/tests/select/boxes_stack.ys @@ -0,0 +1,29 @@ +read_verilog -specify boxes.v +clean + +# default selection == select * +select -assert-count 4 * +select -assert-count 4 % + +# -none replaces default selection +select -none +select -assert-none % +select -assert-count 13 =* + +# select replaces current selection +select =* +select -assert-count 13 % + +# -module changes module +select -module wb +select -assert-none % +select -assert-count 5 =* + +# -none maintains module +select -none +select -assert-count 5 =* + +# -clear clears current selection and module +select -clear +select -assert-count 4 % +select -assert-count 13 =*