diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/Print.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index 3f0cfbabb..b0c83c437 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -21,6 +21,7 @@ #include <ir/iteration.h> #include <ir/module-utils.h> #include <ir/table-utils.h> +#include <ir/utils.h> #include <pass.h> #include <pretty_printing.h> #include <support/string.h> @@ -3113,7 +3114,14 @@ void PrintSExpression::visitElementSegment(ElementSegment* curr) { } o << ' '; + bool needExplicitOffset = Measurer{}.measure(curr->offset) > 1; + if (needExplicitOffset) { + o << "(offset "; + } visit(curr->offset); + if (needExplicitOffset) { + o << ')'; + } if (usesExpressions || currModule->tables.size() > 1) { o << ' '; @@ -3183,7 +3191,14 @@ void PrintSExpression::visitDataSegment(DataSegment* curr) { curr->memory.print(o); o << ") "; } + bool needExplicitOffset = Measurer{}.measure(curr->offset) > 1; + if (needExplicitOffset) { + o << "(offset "; + } visit(curr->offset); + if (needExplicitOffset) { + o << ")"; + } o << ' '; } String::printEscaped(o, {curr->data.data(), curr->data.size()}); |