summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-05 13:35:11 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-05 13:37:08 -0800
commit5f96c2d7b8cf685547f8d5f08d9979dad816ee4d (patch)
tree2ac5e2d0492b1b2ab83c27f72838e23821fd2bf7
parentcbfb617529f162889652548d5cbcc6232f9a02d0 (diff)
downloadbinaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.tar.gz
binaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.tar.bz2
binaryen-5f96c2d7b8cf685547f8d5f08d9979dad816ee4d.zip
parse denormals
-rwxr-xr-xcheck.py2
-rw-r--r--src/wasm-s-parser.h15
2 files changed, 11 insertions, 6 deletions
diff --git a/check.py b/check.py
index f901fb807..9f56f858e 100755
--- a/check.py
+++ b/check.py
@@ -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;