https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97986
--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I guess this should be handled like va_arg for float: give a warning about the type passed, then generate an abort (making sure that side-effects in both arguments take effect before the abort, in case a side-effect involves calling longjmp or exit). (Technically a fixed-size array type argument to va_arg could be used in C90 mode to retrieve a non-lvalue array passed by value as a function argument, but the result would just be another non-lvalue array with no way to access the array elements, so just as useless as all other cases of non-lvalue arrays in C90. So although specifying any array type as the second argument to va_arg is very dubious, maybe the case of a non-VLA in C90 mode should not generate an abort.)