diff options
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r-- | src/binaryen-c.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index d9d330082..51a401a3c 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -2134,6 +2134,16 @@ BinaryenExpressionRef BinaryenSwitchGetValue(BinaryenExpressionRef expr) { return static_cast<Switch*>(expression)->value; } // Call +int BinaryenCallIsReturn(BinaryenExpressionRef expr) { + if (tracing) { + std::cout << " BinaryenCallIsReturn(expressions[" << expressions[expr] + << "]);\n"; + } + + auto* expression = (Expression*)expr; + assert(expression->is<Call>()); + return static_cast<Call*>(expression)->isReturn; +} const char* BinaryenCallGetTarget(BinaryenExpressionRef expr) { if (tracing) { std::cout << " BinaryenCallGetTarget(expressions[" << expressions[expr] @@ -2167,6 +2177,16 @@ BinaryenExpressionRef BinaryenCallGetOperand(BinaryenExpressionRef expr, return static_cast<Call*>(expression)->operands[index]; } // CallIndirect +int BinaryenCallIndirectIsReturn(BinaryenExpressionRef expr) { + if (tracing) { + std::cout << " BinaryenCallIndirectIsReturn(expressions[" + << expressions[expr] << "]);\n"; + } + + auto* expression = (Expression*)expr; + assert(expression->is<CallIndirect>()); + return static_cast<CallIndirect*>(expression)->isReturn; +} BinaryenExpressionRef BinaryenCallIndirectGetTarget(BinaryenExpressionRef expr) { if (tracing) { |