diff options
author | Sam Clegg <sbc@chromium.org> | 2020-12-09 20:54:18 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-09 20:54:18 -0800 |
commit | 57a9e77add02dc1d874fdbfee2c61cae8c0eefa1 (patch) | |
tree | bf0d6251ceea274d4a8166d2e50a02dfe5c198cf /src/wasm/wasm-s-parser.cpp | |
parent | bdc55d3781e55f7d51d2e21751e07f9ec6161c27 (diff) | |
download | binaryen-57a9e77add02dc1d874fdbfee2c61cae8c0eefa1.tar.gz binaryen-57a9e77add02dc1d874fdbfee2c61cae8c0eefa1.tar.bz2 binaryen-57a9e77add02dc1d874fdbfee2c61cae8c0eefa1.zip |
Read and write data segments names in names section (#3435)
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r-- | src/wasm/wasm-s-parser.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp index 7efb2f2fb..3bb54f0c8 100644 --- a/src/wasm/wasm-s-parser.cpp +++ b/src/wasm/wasm-s-parser.cpp @@ -2380,6 +2380,10 @@ void SExpressionWasmBuilder::parseData(Element& s) { bool isPassive = false; Expression* offset = nullptr; Index i = 1; + Name name; + if (s[i]->dollared()) { + name = s[i++]->str(); + } if (s[i]->isStr()) { // data is passive or named if (s[i]->str() == PASSIVE) { @@ -2394,6 +2398,9 @@ void SExpressionWasmBuilder::parseData(Element& s) { throw ParseException("Unexpected data items", s.line, s.col); } parseInnerData(s, s.size() - 1, offset, isPassive); + if (name.is()) { + wasm.memory.segments.back().name = name; + } } void SExpressionWasmBuilder::parseInnerData(Element& s, |