Am 10.03.2013 07:20, schrieb Walter Bright:
On 3/9/2013 2:18 AM, Johannes Pfau wrote:
Am 08.03.2013 19:54, schrieb Walter Bright:
On 3/8/2013 4:40 AM, Johannes Pfau wrote:
So please explain what's illegal in this concrete example #2.
If it lives in a register, then exception handling recovery won't
work on it.
It only lives in the register for a very short time though.
What's the point, then? The compiler will cache fields in registers
anyway.
The point is passing it in a register should be faster than passing it
on the stack or even passing by reference.
However, thinking about it I found another issue which shows that we
have to pass non-PODs (at least those with destructors) by reference. I
filed a bug report for dmd here:
http://d.puremagic.com/issues/show_bug.cgi?id=9704
I also filed a bug report for gdc. Fixing will have to wait till the
above bug is fixed though cause the fix may need frontend changes and
without the above fix non-PODs can't be implemented in gdc because of
gcc-specific details.
http://gdcproject.org/bugzilla/show_bug.cgi?id=42
--
Johannes Pfau
_______________________________________________
dmd-internals mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-internals