From cd788a1a62025fed3832672cb539dda4c4ce1329 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Tue, 21 Jun 2016 16:03:10 -0700 Subject: test only c api examples; c++ api is internal and unstable, it is tested by our own codebase --- test/example/find_div0s.cpp | 57 --------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 test/example/find_div0s.cpp (limited to 'test/example/find_div0s.cpp') diff --git a/test/example/find_div0s.cpp b/test/example/find_div0s.cpp deleted file mode 100644 index 15534d387..000000000 --- a/test/example/find_div0s.cpp +++ /dev/null @@ -1,57 +0,0 @@ - -// -// Tiny example, using Binaryen to walk a WebAssembly module in search -// for direct integer divisions by zero. To do so, we inherit from -// PostWalker, and implement visitBinary, which is called on every -// Binary node in the module's functions. -// - -#include -#include -#include -#include - -using namespace wasm; - -int main() { - // A simple WebAssembly module in S-Expression format. - char input[] = - "(module" - " (func $has_div_zero" - " (i32.div_s" - " (i32.const 5)" - " (i32.const 0)" - " )" - " )" - ")"; - - // Parse the S-Expression text, and prepare to build a WebAssembly module. - SExpressionParser parser(input); - Element& root = *parser.root; - Module module; - - // The parsed code has just one element, the module. Build the module - // from that (and abort on any errors, but there won't be one here). - SExpressionWasmBuilder builder(module, *root[0]); - - // Print it out - WasmPrinter::printModule(&module, std::cout); - - // Search it for divisions by zero: Walk the module, looking for - // that operation. - struct DivZeroSeeker : public PostWalker> { - void visitBinary(Binary* curr) { - // In every Binary, look for integer divisions - if (curr->op == BinaryOp::DivSInt32 || curr->op == BinaryOp::DivUInt32) { - // Check if the right operand is a constant, and if it is 0 - auto right = curr->right->dynCast(); - if (right && right->value.getInteger() == 0) { - std::cout << "We found that " << curr->left << " is divided by zero\n"; - } - } - } - }; - DivZeroSeeker seeker; - seeker.walkModule(&module); -} - -- cgit v1.2.3