On 2/19/23 1:11 PM, Guillaume Piolat wrote:
If my understanding is correct, the mere fact of having a:


     struct S
     {
         char[16384] array;
     }

And then using it anywhere, will necessarily lead to a S.init being created and linked, leading to a binary size inflation of 16kb.
This is not a super high concern, but can inform design decisions.

Is this correct?

Yes.

that's not the case for all-zero .init though. At least in `TypeInfo.initializer`, it's pointing to null with array size indicating the amount of zeroes to write.

Testing with run.dlang.io, switching between `char` and `int` changes the ASM output to show whether it's stored or not.

-Steve

Reply via email to