https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70955
--- Comment #19 from Steven Shi <steven.shi at intel dot com> --- (In reply to vries from comment #18) > Created attachment 39484 [details] > Tentative patch using attributes ms_abi/sysv_abi > > not build or regression tested yet, but at least makes test-case pass. Vries, I tried apply your patch on latest gcc trunk, build and install the new gcc7, it still cannot work. Below is my test case. $ gcc --version gcc (GCC) 7.0.0 20160823 (experimental) $ cat test2.c #include <stdio.h> int __attribute__((ms_abi)) foo (int n, ...) { __builtin_ms_va_list ap; int sum = 0; __builtin_ms_va_start (ap, n); while (n--) { sum += __builtin_va_arg (ap, int); printf("sum = %d\n", sum); } __builtin_ms_va_end (ap); return sum; } int main () { int res = foo (10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); if (res != 55) __builtin_abort (); return 0; } $ gcc -flto -Os test2.c $ ./a.out Segmentation fault (core dumped) But GCC5 works. $ gcc-5 -flto -Os test2.c $ ./a.out sum = 1 sum = 3 sum = 6 sum = 10 sum = 15 sum = 21 sum = 28 sum = 36 sum = 45 sum = 55