[EMAIL PROTECTED] testsuite]$ /export/build/gnu/gcc-stack/build-i686-linux/gcc/xgcc -B/export/build/gnu/gcc-stack/build-i686-linux/gcc/ /net/gnu-6/export/gnu/src/gcc-stack/gcc/libffi/testsuite/libffi.call/cls_16byte.c -Os -I/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/include -I/net/gnu-6/export/gnu/src/gcc-stack/gcc/libffi/testsuite/../include -I/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/include/.. -L/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/.libs -L/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libstdc++-v3/src/.libs -lffi -lm -o ./cls_16byte.exe -Wl,-rpath,../.libs [EMAIL PROTECTED] testsuite]$ ./cls_16byte.exe 7 8 9 1 9 3: 8 17 12 res: 8 17 12 7 8 9 1 9 3: 8 17 12 res: 8 17 12 [EMAIL PROTECTED] testsuite]$ /export/build/gnu/gcc-stack/build-i686-linux/gcc/xgcc -B/export/build/gnu/gcc-stack/build-i686-linux/gcc/ /net/gnu-6/export/gnu/src/gcc-stack/gcc/libffi/testsuite/libffi.call/cls_16byte.c -Os -I/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/include -I/net/gnu-6/export/gnu/src/gcc-stack/gcc/libffi/testsuite/../include -I/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/include/.. -L/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libffi/.libs -L/export/build/gnu/gcc-stack/build-i686-linux/i686-pc-linux-gnu/./libstdc++-v3/src/.libs -lffi -lm -o ./cls_16byte.exe -Wl,-rpath,../.libs -fomit-frame-pointer [EMAIL PROTECTED] testsuite]$ ./cls_16byte.exe 7 8 9 1 9 3: 8 17 12 res: 8 17 12 7 8 9 1 9 3: 8 17 12 Segmentation fault [EMAIL PROTECTED] testsuite]$
That is because libffi fails to keep stack pointer unchanged after calling function with structure return value, many libffi test case will fail with -fomit-frame-pointer on ia32. -- Summary: libffi doesn't work with -fomit-frame-pointer Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libffi AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl at lucon dot org GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34612