On 09/04/2014 08:03 PM, Paul Eggert wrote: > For vectors the macro needs to generate a series of declarations and > statements rather than an expression. It's less clean, but it's good > enough. Something like the attached, say. IMO this is a bit overengineered. In particular, the whole thing is to allocate short-lived objects which are usually small. This means that !issmall branch is unlikely to be taken but requires SAFE_xxx anyway. Moreover, I think we need a very special benchmark to see a difference between alloca and VLA (if any), thus using the latter at any cost doesn't worth an extra complexity. So, although I have no strong objections about your version, I'm voting for simpler and cleaner version with alloca/fallback to regular GC for vectors and strings. Stefan? Dmitry