When -ftrivial-auto-var-init= is enabled, allocas unconditionally
receive auto-initialization since .
In certain cases, it turns out, this is causing problems. For example,
when using alloca to add a random stack offset, as the Linux kernel does
on syscall entry . In this case, none of the alloca'd stack memory is
ever used, and initializing it should be controllable; furthermore, it
is not always possible to safely call memset (see ).
Introduce __builtin_alloca_uninitialized() (and
__builtin_alloca_with_align_uninitialized), which never performs
initialization when -ftrivial-auto-var-init= is enabled.