diff options
author | MI3Guy <pcguy49@yahoo.com> | 2016-05-19 13:04:11 -0400 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-05-19 10:04:11 -0700 |
commit | d541e4fdaff224d61c9ff0036d707d423de76ed8 (patch) | |
tree | aac0ceade8ada8f0858b14f887e8adcc3bd0c462 /src/binaryen-c.cpp | |
parent | ce03a34d97b1afa3b7abd88d04bbbaffe346f1d9 (diff) | |
download | binaryen-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.cpp | 40 |
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 |