summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index bbafdf49d..a876c998b 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -23,6 +23,7 @@
#include "wasm.h"
#include "wasm-builder.h"
#include "wasm-printing.h"
+#include "wasm-validator.h"
#include "cfg/Relooper.h"
using namespace wasm;
@@ -193,7 +194,7 @@ BinaryenExpressionRef BinaryenLoop(BinaryenModuleRef module, const char* out, co
if (out && !in) abort();
return Builder(*((Module*)module)).makeLoop(out ? Name(out) : Name(), in ? Name(in) : Name(), (Expression*)body);
}
-BinaryenExpressionRef BinaryenBreak(BinaryenModuleRef module, const char* name, BinaryenExpressionRef value, BinaryenExpressionRef condition) {
+BinaryenExpressionRef BinaryenBreak(BinaryenModuleRef module, const char* name, BinaryenExpressionRef condition, BinaryenExpressionRef value) {
return Builder(*((Module*)module)).makeBreak(name, (Expression*)value, (Expression*)condition);
}
BinaryenExpressionRef BinaryenSwitch(BinaryenModuleRef module, const char **names, BinaryenIndex numNames, const char* defaultName, BinaryenExpressionRef condition, BinaryenExpressionRef value) {
@@ -372,9 +373,9 @@ void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, Binaryen
// Start function. One per module
-void BinaryenSetStart(BinaryenModuleRef module, const char* name) {
+void BinaryenSetStart(BinaryenModuleRef module, BinaryenFunctionRef start) {
auto* wasm = (Module*)module;
- wasm->addStart(name);
+ wasm->addStart(((Function*)start)->name);
}
//
@@ -385,6 +386,11 @@ void BinaryenModulePrint(BinaryenModuleRef module) {
WasmPrinter::printModule((Module*)module);
}
+int BinaryenModuleValidate(BinaryenModuleRef module) {
+ Module* wasm = (Module*)module;
+ return WasmValidator().validate(*wasm) ? 1 : 0;
+}
+
void BinaryenModuleOptimize(BinaryenModuleRef module) {
Module* wasm = (Module*)module;
PassRunner passRunner(wasm);