I also saw this issue before.  Llvm seems have trouble returning general struct values from functions.  One easy workaround is to use packed struct type.<div><br></div><div>Hope this helps.</div><div><br></div><div>-Peng<span></span><br>
<br>On Sunday, December 30, 2012, edA-qa mort-ora-y  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm having an issue where a certain set of types and insert/extractvalue<br>

are producing the incorrect values. It appears as though extractvalue<br>
getting my sub-structure is not getting the correct data.<br>
<br>
I have these types:<br>
<br>
%outer = type { i32, %inner, i1 }<br>
%inner = type { double, i32 }<br>
<br>
The trouble is that when I have a value of type %outer then proceed to<br>
extract the components of the contained %inner structure I get corrupt<br>
values. If I don't have the "i1" type in there everything works fine,<br>
leading me to think it is something to do with alignment. I do the<br>
extraction with code like this:<br>
<br>
        %o = call %outer @eval_expr()<br>
        %s = extractvalue %outer %o, 1<br>
        %s1 = extractvalue %inner %s, 0<br>
<br>
The %s1 value is not correct (not what was inserted). I think extraction<br>
is the problem and not insertion: in another version I store the value<br>
to a global variable and dump the bytes of the structure, which can then<br>
be properly extracted in C++ code.  The value is produced with this code<br>
(in a separate function):<br>
<br>
        %s0 = insertvalue %inner undef, double 1.500000e+00, 0<br>
        %s1 = insertvalue %inner %s0, i32 2, 1<br>
        %s2 = insertvalue %outer undef, i32 1, 0<br>
        %s3 = insertvalue %outer %s2, %inner %s1, 1<br>
<br>
<br>
I've attached the full sample code which shows the error and where it<br>
happens.<br>
<br>
--<br>
edA-qa mort-ora-y<br>
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
Sign: Please digitally sign your emails.<br>
Encrypt: I'm also happy to receive encrypted mail.<br>
</blockquote></div>