diff options
author | Yury Delendik <ydelendik@mozilla.com> | 2016-04-18 13:40:27 -0500 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-18 11:40:27 -0700 |
commit | bbc39d6e75e8b87170f7a3cd72dd34976687e7f6 (patch) | |
tree | 1f07850627217bf3321c8188aee74817b537a9a5 | |
parent | 4dfeb1c3a84b13188c22e158c5947c68964cddff (diff) | |
download | binaryen-bbc39d6e75e8b87170f7a3cd72dd34976687e7f6.tar.gz binaryen-bbc39d6e75e8b87170f7a3cd72dd34976687e7f6.tar.bz2 binaryen-bbc39d6e75e8b87170f7a3cd72dd34976687e7f6.zip |
Fixes typo in hex number parsing in asm2wasm. (#362)
Fixes #352
-rw-r--r-- | src/emscripten-optimizer/parser.h | 2 | ||||
-rw-r--r-- | test/unit.asm.js | 4 | ||||
-rw-r--r-- | test/unit.fromasm | 9 | ||||
-rw-r--r-- | test/unit.fromasm.imprecise | 9 | ||||
-rw-r--r-- | test/unit.wast | 9 | ||||
-rw-r--r-- | test/unit.wast.fromBinary | 9 |
6 files changed, 41 insertions, 1 deletions
diff --git a/src/emscripten-optimizer/parser.h b/src/emscripten-optimizer/parser.h index 367c831e2..9429ff87f 100644 --- a/src/emscripten-optimizer/parser.h +++ b/src/emscripten-optimizer/parser.h @@ -237,7 +237,7 @@ class Parser { while (1) { if (*src >= '0' && *src <= '9') { num *= 16; num += *src - '0'; } else if (*src >= 'a' && *src <= 'f') { num *= 16; num += *src - 'a' + 10; } - else if (*src >= 'A' && *src <= 'F') { num *= 16; num += *src - 'F' + 10; } + else if (*src >= 'A' && *src <= 'F') { num *= 16; num += *src - 'A' + 10; } else break; src++; } diff --git a/test/unit.asm.js b/test/unit.asm.js index cd432da5c..df731148a 100644 --- a/test/unit.asm.js +++ b/test/unit.asm.js @@ -52,6 +52,10 @@ function asm(global, env, buffer) { var x = 0; return !x; } + function hexLiterals() { + var i = 0; + i = 0x0 + 0x12ABCdef + 0xFEDcba90; + } function conversions() { var i = 0, d = 0.0, f = Math_fround(0); i = ~~d; diff --git a/test/unit.fromasm b/test/unit.fromasm index d426f377d..b54b4564c 100644 --- a/test/unit.fromasm +++ b/test/unit.fromasm @@ -119,6 +119,15 @@ ) ) ) + (func $hexLiterals + (i32.add + (i32.add + (i32.const 0) + (i32.const 313249263) + ) + (i32.const -19088752) + ) + ) (func $conversions (local $i i32) (local $d f64) diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise index 613180bbd..ae9b4d70c 100644 --- a/test/unit.fromasm.imprecise +++ b/test/unit.fromasm.imprecise @@ -117,6 +117,15 @@ ) ) ) + (func $hexLiterals + (i32.add + (i32.add + (i32.const 0) + (i32.const 313249263) + ) + (i32.const -19088752) + ) + ) (func $conversions (local $i i32) (local $d f64) diff --git a/test/unit.wast b/test/unit.wast index 164c6c651..6c37dd9f3 100644 --- a/test/unit.wast +++ b/test/unit.wast @@ -134,6 +134,15 @@ (i32.const 0) ) ) + (func $hexLiterals + (i32.add + (i32.add + (i32.const 0) + (i32.const 313249263) + ) + (i32.const -19088752) + ) + ) (func $conversions (local $i i32) (local $d f64) diff --git a/test/unit.wast.fromBinary b/test/unit.wast.fromBinary index b399d35ff..e99eb1309 100644 --- a/test/unit.wast.fromBinary +++ b/test/unit.wast.fromBinary @@ -137,6 +137,15 @@ (i32.const 0) ) ) + (func $hexLiterals (type $1) + (i32.add + (i32.add + (i32.const 0) + (i32.const 313249263) + ) + (i32.const -19088752) + ) + ) (func $conversions (type $1) (local $var$0 i32) (local $var$1 f64) |