35class DoRemoveExits :
public DoRemoveReturns,
public ResolutionContext {
38 std::set<const IR::Node *> callsExit;
42 explicit DoRemoveExits(
TypeMap *typeMap) : DoRemoveReturns(
"hasExited"_cs), typeMap(typeMap) {
45 setName(
"DoRemoveExits");
48 const IR::Node *preorder(IR::ExitStatement *action)
override;
49 const IR::Node *preorder(IR::P4Table *table)
override;
51 const IR::Node *preorder(IR::BlockStatement *statement)
override;
52 const IR::Node *preorder(IR::IfStatement *statement)
override;
53 const IR::Node *preorder(IR::SwitchStatement *statement)
override;
54 const IR::Node *preorder(IR::AssignmentStatement *statement)
override;
55 const IR::Node *preorder(IR::MethodCallStatement *statement)
override;
57 const IR::Node *preorder(IR::P4Action *action)
override;
58 const IR::Node *preorder(IR::P4Control *control)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24