On 2/18/2013 12:59 PM, Maxim Fomin wrote:


2013/2/18 Walter Bright <walter@digitalmars.com>

On 2/17/2013 1:59 PM, Iain Buclaw wrote:

By the way Johannes, the issue is clear I think.  You can't make temporaries with non-POD structs?  This is something gdc is a bit zealous in doing this around a lot of the code generation.  So addressing that would certainly fix problems around the


Whenever you make a copy of a non-POD value, you have to (for example) build an exception handling frame to destruct it if, in the meantime, an exception is thrown. This is not only expensive, but it doesn't work if the value lives in registers.


What a coincidence.  I hit today issue http://d.puremagic.com/issues/show_bug.cgi?id=8563 Are you implying that temporaries of POD structures are impossible?

No. I'm asserting that non-POD values:

1. cannot be put in registers

2. are expensive to make temporaries of, because all the exception safety stuff has to be added