@@ -35,40 +35,40 @@ namespace wasm {
3535template <typename SubType, typename ReturnType = void >
3636struct Visitor {
3737 // Expression visitors
38- ReturnType visitBlock (Block* curr) {}
39- ReturnType visitIf (If* curr) {}
40- ReturnType visitLoop (Loop* curr) {}
41- ReturnType visitBreak (Break* curr) {}
42- ReturnType visitSwitch (Switch* curr) {}
43- ReturnType visitCall (Call* curr) {}
44- ReturnType visitCallImport (CallImport* curr) {}
45- ReturnType visitCallIndirect (CallIndirect* curr) {}
46- ReturnType visitGetLocal (GetLocal* curr) {}
47- ReturnType visitSetLocal (SetLocal* curr) {}
48- ReturnType visitGetGlobal (GetGlobal* curr) {}
49- ReturnType visitSetGlobal (SetGlobal* curr) {}
50- ReturnType visitLoad (Load* curr) {}
51- ReturnType visitStore (Store* curr) {}
52- ReturnType visitAtomicRMW (AtomicRMW* curr) {return ReturnType ();} // Stub impl so not every pass has to implement this yet.
53- ReturnType visitAtomicCmpxchg (AtomicCmpxchg* curr) {return ReturnType ();} // Stub impl so not every pass has to implement this yet.
54- ReturnType visitConst (Const* curr) {}
55- ReturnType visitUnary (Unary* curr) {}
56- ReturnType visitBinary (Binary* curr) {}
57- ReturnType visitSelect (Select* curr) {}
58- ReturnType visitDrop (Drop* curr) {}
59- ReturnType visitReturn (Return* curr) {}
60- ReturnType visitHost (Host* curr) {}
61- ReturnType visitNop (Nop* curr) {}
62- ReturnType visitUnreachable (Unreachable* curr) {}
38+ ReturnType visitBlock (Block* curr) { return ReturnType (); }
39+ ReturnType visitIf (If* curr) { return ReturnType (); }
40+ ReturnType visitLoop (Loop* curr) { return ReturnType (); }
41+ ReturnType visitBreak (Break* curr) { return ReturnType (); }
42+ ReturnType visitSwitch (Switch* curr) { return ReturnType (); }
43+ ReturnType visitCall (Call* curr) { return ReturnType (); }
44+ ReturnType visitCallImport (CallImport* curr) { return ReturnType (); }
45+ ReturnType visitCallIndirect (CallIndirect* curr) { return ReturnType (); }
46+ ReturnType visitGetLocal (GetLocal* curr) { return ReturnType (); }
47+ ReturnType visitSetLocal (SetLocal* curr) { return ReturnType (); }
48+ ReturnType visitGetGlobal (GetGlobal* curr) { return ReturnType (); }
49+ ReturnType visitSetGlobal (SetGlobal* curr) { return ReturnType (); }
50+ ReturnType visitLoad (Load* curr) { return ReturnType (); }
51+ ReturnType visitStore (Store* curr) { return ReturnType (); }
52+ ReturnType visitAtomicRMW (AtomicRMW* curr) { return ReturnType (); }
53+ ReturnType visitAtomicCmpxchg (AtomicCmpxchg* curr) { return ReturnType (); }
54+ ReturnType visitConst (Const* curr) { return ReturnType (); }
55+ ReturnType visitUnary (Unary* curr) { return ReturnType (); }
56+ ReturnType visitBinary (Binary* curr) { return ReturnType (); }
57+ ReturnType visitSelect (Select* curr) { return ReturnType (); }
58+ ReturnType visitDrop (Drop* curr) { return ReturnType (); }
59+ ReturnType visitReturn (Return* curr) { return ReturnType (); }
60+ ReturnType visitHost (Host* curr) { return ReturnType (); }
61+ ReturnType visitNop (Nop* curr) { return ReturnType (); }
62+ ReturnType visitUnreachable (Unreachable* curr) { return ReturnType (); }
6363 // Module-level visitors
64- ReturnType visitFunctionType (FunctionType* curr) {}
65- ReturnType visitImport (Import* curr) {}
66- ReturnType visitExport (Export* curr) {}
67- ReturnType visitGlobal (Global* curr) {}
68- ReturnType visitFunction (Function* curr) {}
69- ReturnType visitTable (Table* curr) {}
70- ReturnType visitMemory (Memory* curr) {}
71- ReturnType visitModule (Module* curr) {}
64+ ReturnType visitFunctionType (FunctionType* curr) { return ReturnType (); }
65+ ReturnType visitImport (Import* curr) { return ReturnType (); }
66+ ReturnType visitExport (Export* curr) { return ReturnType (); }
67+ ReturnType visitGlobal (Global* curr) { return ReturnType (); }
68+ ReturnType visitFunction (Function* curr) { return ReturnType (); }
69+ ReturnType visitTable (Table* curr) { return ReturnType (); }
70+ ReturnType visitMemory (Memory* curr) { return ReturnType (); }
71+ ReturnType visitModule (Module* curr) { return ReturnType (); }
7272
7373 ReturnType visit (Expression* curr) {
7474 assert (curr);
@@ -117,7 +117,7 @@ struct Visitor {
117117template <typename SubType, typename ReturnType = void >
118118struct UnifiedExpressionVisitor : public Visitor <SubType> {
119119 // called on each node
120- ReturnType visitExpression (Expression* curr) {}
120+ ReturnType visitExpression (Expression* curr) { return ReturnType (); }
121121
122122 // redirects
123123 ReturnType visitBlock (Block* curr) { return static_cast <SubType*>(this )->visitExpression (curr); }
0 commit comments