Skip to content

Commit 0073656

Browse files
committed
gcc workaround #1
1 parent 78e7188 commit 0073656

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

src/wasm.h

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,27 +1066,28 @@ class Module {
10661066

10671067
template<class ReturnType>
10681068
struct WasmVisitor {
1069-
virtual ReturnType visitBlock(Block *curr) = 0;
1070-
virtual ReturnType visitIf(If *curr) = 0;
1071-
virtual ReturnType visitLoop(Loop *curr) = 0;
1072-
virtual ReturnType visitLabel(Label *curr) = 0;
1073-
virtual ReturnType visitBreak(Break *curr) = 0;
1074-
virtual ReturnType visitSwitch(Switch *curr) = 0;
1075-
virtual ReturnType visitCall(Call *curr) = 0;
1076-
virtual ReturnType visitCallImport(CallImport *curr) = 0;
1077-
virtual ReturnType visitCallIndirect(CallIndirect *curr) = 0;
1078-
virtual ReturnType visitGetLocal(GetLocal *curr) = 0;
1079-
virtual ReturnType visitSetLocal(SetLocal *curr) = 0;
1080-
virtual ReturnType visitLoad(Load *curr) = 0;
1081-
virtual ReturnType visitStore(Store *curr) = 0;
1082-
virtual ReturnType visitConst(Const *curr) = 0;
1083-
virtual ReturnType visitUnary(Unary *curr) = 0;
1084-
virtual ReturnType visitBinary(Binary *curr) = 0;
1085-
virtual ReturnType visitCompare(Compare *curr) = 0;
1086-
virtual ReturnType visitConvert(Convert *curr) = 0;
1087-
virtual ReturnType visitSelect(Select *curr) = 0;
1088-
virtual ReturnType visitHost(Host *curr) = 0;
1089-
virtual ReturnType visitNop(Nop *curr) = 0;
1069+
// should be pure virtual, but https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51048
1070+
virtual ReturnType visitBlock(Block *curr) { abort(); }
1071+
virtual ReturnType visitIf(If *curr) { abort(); }
1072+
virtual ReturnType visitLoop(Loop *curr) { abort(); }
1073+
virtual ReturnType visitLabel(Label *curr) { abort(); }
1074+
virtual ReturnType visitBreak(Break *curr) { abort(); }
1075+
virtual ReturnType visitSwitch(Switch *curr) { abort(); }
1076+
virtual ReturnType visitCall(Call *curr) { abort(); }
1077+
virtual ReturnType visitCallImport(CallImport *curr) { abort(); }
1078+
virtual ReturnType visitCallIndirect(CallIndirect *curr) { abort(); }
1079+
virtual ReturnType visitGetLocal(GetLocal *curr) { abort(); }
1080+
virtual ReturnType visitSetLocal(SetLocal *curr) { abort(); }
1081+
virtual ReturnType visitLoad(Load *curr) { abort(); }
1082+
virtual ReturnType visitStore(Store *curr) { abort(); }
1083+
virtual ReturnType visitConst(Const *curr) { abort(); }
1084+
virtual ReturnType visitUnary(Unary *curr) { abort(); }
1085+
virtual ReturnType visitBinary(Binary *curr) { abort(); }
1086+
virtual ReturnType visitCompare(Compare *curr) { abort(); }
1087+
virtual ReturnType visitConvert(Convert *curr) { abort(); }
1088+
virtual ReturnType visitSelect(Select *curr) { abort(); }
1089+
virtual ReturnType visitHost(Host *curr) { abort(); }
1090+
virtual ReturnType visitNop(Nop *curr) { abort(); }
10901091

10911092
ReturnType visit(Expression *curr) {
10921093
assert(curr);

0 commit comments

Comments
 (0)