Displaying 2 results from an estimated 2 matches for "structgep".
2013 Nov 19
2
[LLVMdev] struct alignment question
Is a series of fields in a structure guaranteed to have the same layout
as those fields in a structure on their own? That is, can I cast a
pointer within a main structure to an equivalent type?
X = { a, b, c, d, e }
Y = { c, d, e }
y = BitCast( StructGEP( some_x, 2 ), Y* )
Is that a valid cast?
--
edA-qa mort-ora-y
Leaf Creator
Leaf - the language we always wanted
http://leaflang.org/
2013 Nov 19
0
[LLVMdev] struct alignment question
...ct alignment question
> Is a series of fields in a structure guaranteed to have the same layout
> as those fields in a structure on their own? That is, can I cast a
> pointer within a main structure to an equivalent type?
> X = { a, b, c, d, e }
> Y = { c, d, e }
> y = BitCast( StructGEP( some_x, 2 ), Y* )
> Is that a valid cast?
In general, no. If a, b, and c were char, and d was an int, using typical C alignments, there would be one slack byte between c and d in X, whereas there would be three in Y. You could probably force what you want with packed structures or by playin...