Bruce, On Sat, Feb 14, 2015 at 08:46:58PM +1100, Bruce Evans wrote: B> Using VLAs and also the C99 feature of declarations anwhere, and extensions B> like __aligned(), we can almost implement a full alloca() using the fixed B> version of this change: B> B> /* B> * XXX need extended statement-expression so that __buf doesn't go out B> * of scope after the right brace. B> */ B> #define my_alloca(n) __extension__ ({ B> /* XXX need unique name. */ \ B> char __buf[__roundup2((n), MUMBLE)] __aligned(MUMBLE); \ B> \ B> (void *)__buf; \ B> })
I like this idea. But would this exact code work? The life of __buf is limited by the code block, and we exit the block immediately. Wouldn't the allocation be overwritten if we enter any function or block later? -- Totus tuus, Glebius. _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"