tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: alloca() declaration
In article <50387B13.4020709%ludd.ltu.se@localhost>,
Anders Magnusson <ragge%ludd.ltu.se@localhost> wrote:
>I noticed that there is a difference between whether alloca() is in libc
>or not for our ports.
>arm, i386, m68k, vax, amd64 has the functions, others not.
>
>Also, the stuff in is not correct either:
>
>#if defined(alloca) && (alloca == __builtin_alloca) && \
> defined(__GNUC__) && (__GNUC__ < 2)
>void *alloca(int); /* built-in for gcc */
>#elif defined(__PCC__) && !defined(__GNUC__)
>#define alloca(size) __builtin_alloca(size)
>#else
>void *alloca(size_t);
>#endif /* __GNUC__ */
>
>besides the fact that string comparison is not possible in cpp this
>would in fact usually just end up in declaring alloca().
>
>This means that alloca won't be available if using gcc -std=c99 on a
>bunch of ports, which is not the desired behavior.
>
>One way to solve this would be to replace the stuff above with:
>#if defined(__GNUC__)
>#define alloca(size) __builtin_alloca(size)
>#endif
>
>so that gcc always uses the builtin alloca.
>
>Comments?
That will break gcc-1.x, but we don't support it :-)
Please go ahead and simplify it. Don't you need a #else
void *alloca(size_t)?
christos
Home |
Main Index |
Thread Index |
Old Index