alloca.3: Correct information on getting non-inlined version with gcc+glibc

- remove the incorrect information that -fno-builtin would help
- add -std=c11 to the list of strict options
- emphasize more that both the gcc option and not including
  alloca.h are needed
- add the #ifdef from the glibc alloca.h to make the situation clearer

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Adrian Bunk 2013-05-12 14:26:07 +03:00 committed by Michael Kerrisk
parent 1aff58045d
commit 4906c99219
1 changed files with 9 additions and 7 deletions

View File

@ -40,7 +40,7 @@
.\" Various rewrites and additions (notes on longjmp() and SIGSEGV).
.\" Weaken warning against use of alloca() (as per Debian bug 461100).
.\"
.TH ALLOCA 3 2008-01-24 "GNU" "Linux Programmer's Manual"
.TH ALLOCA 3 2013-05-12 "GNU" "Linux Programmer's Manual"
.SH NAME
alloca \- allocate memory that is automatically freed
.SH SYNOPSIS
@ -110,20 +110,22 @@ This is not done when either the
.IR "\-std=c89" ,
.IR "\-std=c99" ,
or the
.IR "\-fno\-builtin"
.IR "\-std=c11"
option is given
(and the header
.BR and
the header
.I <alloca.h>
is not included).
But beware!
By default the glibc version of
is not included.
Otherwise (without an \-ansi or \-std=c* option) the glibc version of
.I <stdlib.h>
includes
.I <alloca.h>
and that contains the line:
and that contains the lines:
.nf
#ifdef __GNUC__
#define alloca(size) __builtin_alloca (size)
#endif
.fi
with messy consequences if one has a private version of this function.