[llvm-dev] Question about ObjectSizeOffsetVisitor::visitGlobalVariable

Karl Rehm via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 29 17:28:57 PST 2020


Interesting, so I guess we can check for whether it's an array type and
adjust accordingly instead? Blocking *all* global variables without
definitive initializers feels a bit much to me, especially if they have
primitive types (i.e. integers) that don't have the potential to be screwed
around with like this.

On Wed, Jan 29, 2020 at 8:14 PM George Burgess IV <
george.burgess.iv at gmail.com> wrote:

> Looks like the commit that added that was
> https://github.com/llvm/llvm-project/commit/16e42128c24f5df8a61cfd2e6cdf3bd3966db0c5
> . A reduced example might look something like this:
> https://godbolt.org/z/r4G_g-
>
> At the C source level, static object size detection has to be similarly
> conservative in the face of 'variable-length' structs like `struct
> my_string { size_t size; char data[0]; };`, though I don't know how
> relevant that is here.
>
> On Tue, Jan 28, 2020 at 11:41 PM Karl Rehm via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> In this function (used to check the size of a global) there is an initial
>> check for whether the initializer to this function is "definitive." My
>> question is: why do we need this? How does the object's size change if a
>> global's initializer is defined at link time?
>>
>> Thanks,
>> Karl
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200129/93082068/attachment.html>


More information about the llvm-dev mailing list