https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86973
--- Comment #3 from Michael Matz <matz at gcc dot gnu.org> --- A testcase that doesn't need -mabi cmdline args: extern __attribute__((ms_abi)) void foo(void); __attribute__((sysv_abi)) void a(__attribute__((__vector_size__(8 * sizeof(double)))) double b){ foo(); } For very old GCCs (starting with r206947 from 2014) we actually get a sorry, and then the known ICE: pr86973.i: In function ‘a’: pr86973.i:4:8: sorry, unimplemented: ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it foo(); ^ pr86973.i:4:8: internal compiler error: in expand_call, at calls.c:3471 0x6ed0b1 expand_call(tree_node*, rtx_def*, int) ../../gcc/gcc/calls.c:3469 Indeed adding -maccumulate-outgoing-args removes the error. That revision simply changed the default for that option. We lost the sorry with r207677, but retained the ICE. Since then we ICE.