summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer/optimizer-shared.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-28 20:07:28 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-28 20:16:52 -0800
commitd8f258e8e74b17d06ee7d94fc7c4dd3165819f0d (patch)
tree16c6706992f27a2e86fc9c112838aa168d2b637f /src/emscripten-optimizer/optimizer-shared.cpp
parent37b7e93a71e1a51fcb826cb2bce88f47bd396674 (diff)
downloadbinaryen-d8f258e8e74b17d06ee7d94fc7c4dd3165819f0d.tar.gz
binaryen-d8f258e8e74b17d06ee7d94fc7c4dd3165819f0d.tar.bz2
binaryen-d8f258e8e74b17d06ee7d94fc7c4dd3165819f0d.zip
be very careful when converting doubles to ints in asm2wasm
Diffstat (limited to 'src/emscripten-optimizer/optimizer-shared.cpp')
-rw-r--r--src/emscripten-optimizer/optimizer-shared.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/emscripten-optimizer/optimizer-shared.cpp b/src/emscripten-optimizer/optimizer-shared.cpp
index 24c19cd79..6a8bbf9b5 100644
--- a/src/emscripten-optimizer/optimizer-shared.cpp
+++ b/src/emscripten-optimizer/optimizer-shared.cpp
@@ -19,6 +19,12 @@ bool isInteger32(double x) {
return isInteger(x) && (x == (int32_t)x || x == (uint32_t)x);
}
+int32_t toInteger32(double x) {
+ if (x == (int32_t)x) return (int32_t)x;
+ assert(x == (uint32_t)x);
+ return (uint32_t)x;
+}
+
int parseInt(const char *str) {
int ret = *str - '0';
while (*(++str)) {