Hi Foivos,<div><br></div><div>Thank you for reporting the error! I have fixed the problem on svn trunk, so if you update and compile llvm and vmkit again, you should have things compile again.</div><div><br></div><div>Nicolas</div>
<br><div class="gmail_quote">On Mon, May 28, 2012 at 9:01 PM, Foivos Zakkak <span dir="ltr"><<a href="mailto:foivos@zakkak.net" target="_blank">foivos@zakkak.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
vmkit fails to build because llvm-as with llc -march=cpp generate wrong<br>
code for<br>
AttrListPtr AttrListPtr::get(ArrayRef< AttributeWithIndex >Attrs)<br>
<a href="http://llvm.org/doxygen/classllvm_1_1AttrListPtr.html#a3a19622d131e9f0d981398f54cf6acfc" target="_blank">http://llvm.org/doxygen/classllvm_1_1AttrListPtr.html#a3a19622d131e9f0d981398f54cf6acfc</a><br>
<br>
bellow you can see the faulty generated code<br>
<br>
llvm-as ./vmkit/lib/vmkit/Compiler/LLVMRuntime.ll -o - | llc -march=cpp<br>
-cppgen=contents -o - | grep 'AttrListPtr::get'<br>
func_llvm_sqrt_f64_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_sin_f64_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_cos_f64_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_memcpy_i32_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_memset_i32_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_frameaddress_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_atomic_cmp_swap_i8_p0i8_PAL =<br>
AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_atomic_cmp_swap_i16_p0i16_PAL =<br>
AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_atomic_cmp_swap_i32_p0i32_PAL =<br>
AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_llvm_atomic_cmp_swap_i64_p0i64_PAL =<br>
AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_unconditionalSafePoint_PAL = AttrListPtr::get(Attrs.begin(),<br>
Attrs.end());<br>
func_conditionalSafePoint_PAL = AttrListPtr::get(Attrs.begin(),<br>
Attrs.end());<br>
func_llvm_gcroot_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func__setjmp_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_registerSetjmp_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
func_unregisterSetjmp_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());<br>
<br>
One would expect to see AttrListPtr::get(Attrs.begin(), Attrs.end())<br>
<br>
Thank you<br>
Foivos<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br>