26class DoRemoveExits :
public DoRemoveReturns,
public ResolutionContext {
29 std::set<const IR::Node *> callsExit;
33 explicit DoRemoveExits(
TypeMap *typeMap) : DoRemoveReturns(
"hasExited"_cs), typeMap(typeMap) {
36 setName(
"DoRemoveExits");
39 const IR::Node *preorder(IR::ExitStatement *action)
override;
40 const IR::Node *preorder(IR::P4Table *table)
override;
42 const IR::Node *preorder(IR::BlockStatement *statement)
override;
43 const IR::Node *preorder(IR::IfStatement *statement)
override;
44 const IR::Node *preorder(IR::SwitchStatement *statement)
override;
45 const IR::Node *preorder(IR::BaseAssignmentStatement *statement)
override;
46 const IR::Node *preorder(IR::MethodCallStatement *statement)
override;
48 const IR::Node *preorder(IR::P4Action *action)
override;
49 const IR::Node *preorder(IR::P4Control *control)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13