summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
authorMI3Guy <pcguy49@yahoo.com>2016-05-19 13:04:11 -0400
committerAlon Zakai <alonzakai@gmail.com>2016-05-19 10:04:11 -0700
commitd541e4fdaff224d61c9ff0036d707d423de76ed8 (patch)
treeaac0ceade8ada8f0858b14f887e8adcc3bd0c462 /src/binaryen-c.cpp
parentce03a34d97b1afa3b7abd88d04bbbaffe346f1d9 (diff)
downloadbinaryen-d541e4fdaff224d61c9ff0036d707d423de76ed8.tar.gz
binaryen-d541e4fdaff224d61c9ff0036d707d423de76ed8.tar.bz2
binaryen-d541e4fdaff224d61c9ff0036d707d423de76ed8.zip
Added static_cast to prevent direct conversion from subclasses to void*. (#502)
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 7fb39ffe4..c854fcb03 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -233,7 +233,7 @@ BinaryenExpressionRef BinaryenBlock(BinaryenModuleRef module, const char* name,
ret->list.push_back((Expression*)children[i]);
}
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenIf(BinaryenModuleRef module, BinaryenExpressionRef condition, BinaryenExpressionRef ifTrue, BinaryenExpressionRef ifFalse) {
auto* ret = ((Module*)module)->allocator.alloc<If>();
@@ -241,14 +241,14 @@ BinaryenExpressionRef BinaryenIf(BinaryenModuleRef module, BinaryenExpressionRef
ret->ifTrue = (Expression*)ifTrue;
ret->ifFalse = (Expression*)ifFalse;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenLoop(BinaryenModuleRef module, const char* out, const char* in, BinaryenExpressionRef body) {
if (out && !in) abort();
- return Builder(*((Module*)module)).makeLoop(out ? Name(out) : Name(), in ? Name(in) : Name(), (Expression*)body);
+ return static_cast<Expression*>(Builder(*((Module*)module)).makeLoop(out ? Name(out) : Name(), in ? Name(in) : Name(), (Expression*)body));
}
BinaryenExpressionRef BinaryenBreak(BinaryenModuleRef module, const char* name, BinaryenExpressionRef condition, BinaryenExpressionRef value) {
- return Builder(*((Module*)module)).makeBreak(name, (Expression*)value, (Expression*)condition);
+ return static_cast<Expression*>(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) {
auto* ret = ((Module*)module)->allocator.alloc<Switch>();
@@ -259,7 +259,7 @@ BinaryenExpressionRef BinaryenSwitch(BinaryenModuleRef module, const char **name
ret->condition = (Expression*)condition;
ret->value = (Expression*)value;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenCall(BinaryenModuleRef module, const char *target, BinaryenExpressionRef* operands, BinaryenIndex numOperands, BinaryenType returnType) {
auto* ret = ((Module*)module)->allocator.alloc<Call>();
@@ -269,7 +269,7 @@ BinaryenExpressionRef BinaryenCall(BinaryenModuleRef module, const char *target,
}
ret->type = WasmType(returnType);
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenCallImport(BinaryenModuleRef module, const char *target, BinaryenExpressionRef* operands, BinaryenIndex numOperands, BinaryenType returnType) {
auto* ret = ((Module*)module)->allocator.alloc<CallImport>();
@@ -279,7 +279,7 @@ BinaryenExpressionRef BinaryenCallImport(BinaryenModuleRef module, const char *t
}
ret->type = WasmType(returnType);
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenCallIndirect(BinaryenModuleRef module, BinaryenExpressionRef target, BinaryenExpressionRef* operands, BinaryenIndex numOperands, BinaryenFunctionTypeRef type) {
auto* ret = ((Module*)module)->allocator.alloc<CallIndirect>();
@@ -289,21 +289,21 @@ BinaryenExpressionRef BinaryenCallIndirect(BinaryenModuleRef module, BinaryenExp
}
ret->fullType = (FunctionType*)type;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenGetLocal(BinaryenModuleRef module, BinaryenIndex index, BinaryenType type) {
auto* ret = ((Module*)module)->allocator.alloc<GetLocal>();
ret->index = index;
ret->type = WasmType(type);
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenSetLocal(BinaryenModuleRef module, BinaryenIndex index, BinaryenExpressionRef value) {
auto* ret = ((Module*)module)->allocator.alloc<SetLocal>();
ret->index = index;
ret->value = (Expression*)value;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenLoad(BinaryenModuleRef module, uint32_t bytes, int8_t signed_, uint32_t offset, uint32_t align, BinaryenType type, BinaryenExpressionRef ptr) {
auto* ret = ((Module*)module)->allocator.alloc<Load>();
@@ -314,7 +314,7 @@ BinaryenExpressionRef BinaryenLoad(BinaryenModuleRef module, uint32_t bytes, int
ret->type = WasmType(type);
ret->ptr = (Expression*)ptr;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenStore(BinaryenModuleRef module, uint32_t bytes, uint32_t offset, uint32_t align, BinaryenExpressionRef ptr, BinaryenExpressionRef value) {
auto* ret = ((Module*)module)->allocator.alloc<Store>();
@@ -324,16 +324,16 @@ BinaryenExpressionRef BinaryenStore(BinaryenModuleRef module, uint32_t bytes, ui
ret->ptr = (Expression*)ptr;
ret->value = (Expression*)value;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenConst(BinaryenModuleRef module, BinaryenLiteral value) {
- return Builder(*((Module*)module)).makeConst(fromBinaryenLiteral(value));
+ return static_cast<Expression*>(Builder(*((Module*)module)).makeConst(fromBinaryenLiteral(value)));
}
BinaryenExpressionRef BinaryenUnary(BinaryenModuleRef module, BinaryenOp op, BinaryenExpressionRef value) {
- return Builder(*((Module*)module)).makeUnary(UnaryOp(op), (Expression*)value);
+ return static_cast<Expression*>(Builder(*((Module*)module)).makeUnary(UnaryOp(op), (Expression*)value));
}
BinaryenExpressionRef BinaryenBinary(BinaryenModuleRef module, BinaryenOp op, BinaryenExpressionRef left, BinaryenExpressionRef right) {
- return Builder(*((Module*)module)).makeBinary(BinaryOp(op), (Expression*)left, (Expression*)right);
+ return static_cast<Expression*>(Builder(*((Module*)module)).makeBinary(BinaryOp(op), (Expression*)left, (Expression*)right));
}
BinaryenExpressionRef BinaryenSelect(BinaryenModuleRef module, BinaryenExpressionRef condition, BinaryenExpressionRef ifTrue, BinaryenExpressionRef ifFalse) {
auto* ret = ((Module*)module)->allocator.alloc<Select>();
@@ -341,10 +341,10 @@ BinaryenExpressionRef BinaryenSelect(BinaryenModuleRef module, BinaryenExpressio
ret->ifTrue = (Expression*)ifTrue;
ret->ifFalse = (Expression*)ifFalse;
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenReturn(BinaryenModuleRef module, BinaryenExpressionRef value) {
- return Builder(*((Module*)module)).makeReturn((Expression*)value);
+ return static_cast<Expression*>(Builder(*((Module*)module)).makeReturn((Expression*)value));
}
BinaryenExpressionRef BinaryenHost(BinaryenModuleRef module, BinaryenOp op, const char* name, BinaryenExpressionRef* operands, BinaryenIndex numOperands) {
auto* ret = ((Module*)module)->allocator.alloc<Host>();
@@ -354,13 +354,13 @@ BinaryenExpressionRef BinaryenHost(BinaryenModuleRef module, BinaryenOp op, cons
ret->operands.push_back((Expression*)operands[i]);
}
ret->finalize();
- return ret;
+ return static_cast<Expression*>(ret);
}
BinaryenExpressionRef BinaryenNop(BinaryenModuleRef module) {
- return ((Module*)module)->allocator.alloc<Nop>();
+ return static_cast<Expression*>(((Module*)module)->allocator.alloc<Nop>());
}
BinaryenExpressionRef BinaryenUnreachable(BinaryenModuleRef module) {
- return ((Module*)module)->allocator.alloc<Unreachable>();
+ return static_cast<Expression*>(((Module*)module)->allocator.alloc<Unreachable>());
}
// Functions