On 13 February 2013 13:26, Johannes Pfau <nos...@example.com> wrote: > Am Tue, 12 Feb 2013 18:16:31 +0000 > schrieb Iain Buclaw <ibuc...@ubuntu.com>: > > > TREE_ADDRESSABLE should be sufficient. I can't think any reason off > > the top of my head why not. > > > > maybe TREE_ADDRESSABLE is too strong: It generates errors in the > backend if the frontend produces non-lvalues: > --- > auto b = Date(); > a(b); > --- > > works, but > --- > a(Date()); > --- > > fails in gimplify.c. Do we really have to rewrite such cases so that > non-PODs get a temporary variable? And how would this be done? It seems > we would have to use the frontend for this, as maybeMakeTemp and > makeTemp refuse to work for TREE_ADDRESSABLE types. >
Don't set it on the variable, set it on the type. TypeStruct::toCtype() { TYPE_ADDRESSABLE(ctype) = !isPOD(); } -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';