For some reason INT_MIN is not parsing correctly under MSVC.. 

```
#include <stdio.h>

int main() {
  double x = -2147483648;
  double y = -2147483648L;
  double z = -2147483648.0;
  printf("%f\n", x);
  printf("%f\n", y);
  printf("%f\n", z);
}
```

Under MSVC this produces:

```
2147483648.000000
2147483648.000000
-2147483648.000000
```

i.e. only adding `.0` at the end causes the sign bit to be preserved.

Gcc and clang both (correctly I believe) produce:

```
-2147483648.000000
-2147483648.000000
-2147483648.000000
```
[wasm2c] Strange issue with double parsing in msvc
This is a GitHub Issue
repo:wabt
owner:WebAssembly
Title : [wasm2c] Strange issue with double parsing in msvc
Issue date:

--- start body ---
For some reason INT_MIN is not parsing correctly under MSVC.. 

```
#include <stdio.h>

int main() {
  double x = -2147483648;
  double y = -2147483648L;
  double z = -2147483648.0;
  printf("%f\n", x);
  printf("%f\n", y);
  printf("%f\n", z);
}
```

Under MSVC this produces:

```
2147483648.000000
2147483648.000000
-2147483648.000000
```

i.e. only adding `.0` at the end causes the sign bit to be preserved.

Gcc and clang both (correctly I believe) produce:

```
-2147483648.000000
-2147483648.000000
-2147483648.000000
```
--- end body ---

None