On Friday, 6 May 2016 at 09:31:08 UTC, Steven Schveighoffer wrote:
On 5/6/16 11:06 AM, Dmitry Olshansky wrote:
On 06-May-2016 05:37, Jeremy DeHaan wrote:
On Wednesday, 4 May 2016 at 12:42:30 UTC, jmh530 wrote:
On Wednesday, 4 May 2016 at 02:50:08 UTC, Jeremy DeHaan wrote:

I'm not sure, but one would think that @safe code wouldn't need any
extra information about the union. I wouldn't know how to
differentiate between them though during runtime. Probably someone with more experience with the compiler would know more about that
kind of thing.

You can identify safe functions with
https://dlang.org/phobos/std_traits.html#isSafe
or
https://dlang.org/phobos/std_traits.html#functionAttributes

All I meant was that I don't know enough about what the compiler does with built in types to make this work. It almost sounds like we would need a safe union and unsafe union type and do some extra stuff for the
unsafe union, but I'm just starting to learn about this stuff.

I'd note that a union without pointers doesn't hurt precise scanner,
it's only the ones with pointers that are bad.


Ones that have only pointers are probably OK too. Though I'm not sure if a precise scanner takes into account the type of the pointer. I would expect it to use embedded typeinfo in target block.

-Steve

Because of void* and classes, the GC MUST be able to find out what type was actually allocated, or at least its pointer bitmask.

Reply via email to