diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-05 13:35:11 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-05 13:37:08 -0800 |
commit | 5f96c2d7b8cf685547f8d5f08d9979dad816ee4d (patch) | |
tree | 2ac5e2d0492b1b2ab83c27f72838e23821fd2bf7 | |
parent | cbfb617529f162889652548d5cbcc6232f9a02d0 (diff) | |
download | binaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.tar.gz binaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.tar.bz2 binaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.zip |
parse denormals
-rwxr-xr-x | check.py | 2 | ||||
-rw-r--r-- | src/wasm-s-parser.h | 15 |
2 files changed, 11 insertions, 6 deletions
@@ -83,7 +83,7 @@ if len(requested) == 0: #spec_tests = [] # XXX [os.path.join('spec', t) for t in sorted(os.listdir(os.path.join('test', 'spec')))] # 'address' : filed issue, test looks invalid # 'exports' : has a "return" https://github.com/WebAssembly/spec/issues/164 - spec_tests = [os.path.join('spec', t + '.wast') for t in ['conversions', 'endianness']] + spec_tests = [os.path.join('spec', t + '.wast') for t in ['conversions', 'endianness', 'f32_cmp']] else: spec_tests = requested[:] diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index 6e383e17e..96759b541 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -544,10 +544,8 @@ private: } } const char *str = s[1]->c_str(); - size_t size; switch (type) { case i32: { - const char *str = s[1]->c_str(); std::istringstream istr(str); int32_t temp; if (str[0] == '0' && str[1] == 'x') { @@ -561,7 +559,6 @@ private: break; } case i64: { - const char *str = s[1]->c_str(); std::istringstream istr(str); int64_t temp; if (str[0] == '0' && str[1] == 'x') { @@ -574,8 +571,16 @@ private: ret->value.i64 = temp; break; } - case f32: ret->value.f32 = std::stof(str, &size); break; - case f64: ret->value.f64 = std::stod(str, &size); break; + case f32: { + char *end; + ret->value.f32 = strtof(str, &end); + break; + } + case f64: { + char *end; + ret->value.f64 = strtod(str, &end); + break; + } default: onError(); } return ret; |