I've reproduced the crash in squeak.stack.spur Win32 with latest vm sources (SHA aa11221d9ebb5d60b0b88a2f1f8e27f19909d718)
This crashing VM is compiled with gcc via ./mvm -f
The Win64 version passes correctly. But it is compiled with clang by default.
The Win32 compiled with clang also passes correctly for me.
The test is translated in pure Alien for purpose of testing on Squeak 5.0 (see instructions below).
--------------------------------------------------------------
from cygwin (or cygwin64) shell:
$ i686-w64-mingw32-gcc --version
i686-w64-mingw32-gcc (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.�� There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ i686-w64-mingw32-clang --version
clang version 3.8.1 (tags/RELEASE_381/final)
Target: i686-w64-windows-gnu
Thread model: posix
InstalledDir: /usr/bin
$ x86_64-w64-mingw32-clang --version
clang version 3.8.1 (tags/RELEASE_381/final)
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: /usr/bin
--------------------------------------------------------------
$ cd build.win32x86/squeak.stack.spur
$ ./mvm -f -- CC=i686-w64-mingw32-clang
or for 64 bits:
$ cd build.win64x64/squeak.stack.spur
$ ./mvm -f
--------------------------------------------------------------
$ cat >test.c << END
#include "stdint.h"
int8_t test(int8_t(*function)(int8_t), int8_t value) {
������������ return function(value);
������ }
END
$ i686-w64-mingw32-clang -c test.c
$ i686-w64-mingw32-clang -shared -o build/vm/test.dll test.o
$ build/vm/Squeak.exe
--------------------------------------------------------------