summaryrefslogtreecommitdiff
path: root/src/parser/contexts.h
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-11-15 01:41:37 +0100
committerGitHub <noreply@github.com>2023-11-15 01:41:37 +0100
commit8eb4899d8dafe02c0440c5e33aaf37529e8fc941 (patch)
tree61aa3a6a7de63ce0b79253788c30b0e2c52d630c /src/parser/contexts.h
parent9846aaba1e4c4071c496000f4fa9ead3d1d107a5 (diff)
downloadbinaryen-8eb4899d8dafe02c0440c5e33aaf37529e8fc941.tar.gz
binaryen-8eb4899d8dafe02c0440c5e33aaf37529e8fc941.tar.bz2
binaryen-8eb4899d8dafe02c0440c5e33aaf37529e8fc941.zip
[Parser] Parse br_table (#6098)
Diffstat (limited to 'src/parser/contexts.h')
-rw-r--r--src/parser/contexts.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/parser/contexts.h b/src/parser/contexts.h
index 6a3ab9614..485c596e7 100644
--- a/src/parser/contexts.h
+++ b/src/parser/contexts.h
@@ -383,6 +383,9 @@ struct NullInstrParserCtx {
Result<> makeMemoryFill(Index, MemoryIdxT*) { return Ok{}; }
Result<> makeCall(Index, FuncIdxT, bool) { return Ok{}; }
Result<> makeBreak(Index, LabelIdxT) { return Ok{}; }
+ Result<> makeSwitch(Index, const std::vector<LabelIdxT>&, LabelIdxT) {
+ return Ok{};
+ }
Result<> makeReturn(Index) { return Ok{}; }
template<typename HeapTypeT> Result<> makeRefNull(Index, HeapTypeT) {
return Ok{};
@@ -1246,6 +1249,11 @@ struct ParseDefsCtx : TypeParserCtx<ParseDefsCtx> {
return withLoc(pos, irBuilder.makeBreak(label));
}
+ Result<>
+ makeSwitch(Index pos, const std::vector<Index> labels, Index defaultLabel) {
+ return withLoc(pos, irBuilder.makeSwitch(labels, defaultLabel));
+ }
+
Result<> makeReturn(Index pos) {
return withLoc(pos, irBuilder.makeReturn());
}