[llvm-dev] A struct {i8, i64} has size == 12, clang says size 16

edA-qa mort-ora-y via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 18 13:42:26 PDT 2018


The getABITypeAlignment
<http://llvm.org/doxygen/classllvm_1_1DataLayout.html#a43556646ad677cfdcfde2b031fa59173>
function is returning only 4 for an i64, which would explain the
discrepency.

I double-checked my triple again and ensured it's the same one as clang.
That's apparently not enough. What else do I need to adjust to get the
platform default ABI?


On 18/04/18 21:37, Reid Kleckner wrote:
> It sounds like your DataLayout may not match clang's for x86_64-linux. What
> does it say about the alignment of i64?
> On Wed, Apr 18, 2018 at 12:05 PM edA-qa mort-ora-y via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> I'm creating a struct of `{i8,i64}` and `DataLayout::getTypeAllocSize`
>> is returning `12`. `getStructLayout` also gives an `4` offset for the
>> second element.
>> The native ABI, and clang, for the same type are producing a size of 16,
>> with an alignment of 8, for the second element.
>> This is for the system triple "x86_64-linux-gnu"
>> What could be causing this difference in alignment and how can I fix it?
>
>> I'm verifying the native ABI with:
>>      // clang -emit-llvm ll_struct_arg.c -S -o /dev/tty
>>      #include <stddef.h>
>>      typedef struct vpt_data {
>>          _Bool c;
>>          long int b;
>>      } vpt_data;
>>      int main() {
>>          vpt_data v;
>>          vpt_test(v);
>>          auto a = sizeof(v);
>>          auto off = offsetof(vpt_data,b);
>>      }
>
>> 16 is stored to `a` and 8 to `off`.
>> --
>> edA-qa mort-ora-y
>>          http://mortoray.com/
>> Creator of the Leaf language
>>          http://leaflang.org/
>> Streaming algorithms, AI, and design on Twitch
>>          https://www.twitch.tv/mortoray
>> Twitter
>>          edaqa
>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


-- 
edA-qa mort-ora-y  
	http://mortoray.com/

Creator of the Leaf language
	http://leaflang.org/

Streaming algorithms, AI, and design on Twitch
	https://www.twitch.tv/mortoray

Twitter
	edaqa
	

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180418/d47eb64b/attachment.html>


More information about the llvm-dev mailing list