[dmd-internals] How does TypeInfo.init work?

Steven Schveighoffer via dmd-internals dmd-internals at puremagic.com
Thu Jun 11 11:56:46 PDT 2015

I don’t know that the compiler cares what’s in the TypeInfo, it uses it’s own internal representation I think. This is a communication to druntime of how to initialize the type. The idea is not to take up data in the static section with zero bytes.

You will see it used in the runtime, for example: https://github.com/D-Programming-Language/druntime/blob/master/src/object.d#L2592 <https://github.com/D-Programming-Language/druntime/blob/master/src/object.d#L2592>

It’s probably used elsewhere too, but I’m not sure where to look.


> On Jun 11, 2015, at 8:02 AM, Mike Franklin via dmd-internals <dmd-internals at puremagic.com> wrote:
> There is a comment [1] in object.d for TypeInfo.init reading:
> "Return default initializer.  If the type should be initialized to all zeros, an array with a null ptr and a length equal to the type size will be returned."
> Also, I see where the null pointer is set in typinf.c [2].  
> Using int as an example, how does the compiler go from a null pointer and a size to a 32-bit 0?  Where is that done in the compiler?
> [1] https://github.com/D-Programming-Language/druntime/blob/master/src/object.d#L286-L287
> [2] https://github.com/D-Programming-Language/dmd/blob/master/src/typinf.c#L460
> Thanks for the help,
> Mike
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/dmd-internals/attachments/20150611/8d9ce042/attachment.html>

More information about the dmd-internals mailing list