Hi Rafael,<div><br></div><div>That would be great! Somehow compiling the c++ output, run it and compare with the original source. I don't know if llvm has some existing testing framework for doing that, but it is certainly feasible.</div>
<div><br></div><div>Nicolas<br><br><div class="gmail_quote">On Fri, Oct 26, 2012 at 8:33 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">should we start adding tests for the cpp backend?<br>
<div class="HOEnZb"><div class="h5"><br>
On 26 October 2012 05:14, Nicolas Geoffray <<a href="mailto:nicolas.geoffray@lip6.fr">nicolas.geoffray@lip6.fr</a>> wrote:<br>
> Author: geoffray<br>
> Date: Fri Oct 26 04:14:38 2012<br>
> New Revision: 166762<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=166762&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=166762&view=rev</a><br>
> Log:<br>
> Fix CPP backend for method attributes by creating a block where a new AttrBuilder is defined for each attribute.<br>
><br>
><br>
> Modified:<br>
>     llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp<br>
><br>
> Modified: llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp?rev=166762&r1=166761&r2=166762&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp?rev=166762&r1=166761&r2=166762&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp (original)<br>
> +++ llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp Fri Oct 26 04:14:38 2012<br>
> @@ -476,11 +476,11 @@<br>
>        unsigned index = PAL.getSlot(i).Index;<br>
>        AttrBuilder attrs(PAL.getSlot(i).Attrs);<br>
>        Out << "PAWI.Index = " << index << "U;\n";<br>
> -      Out << "   AttrBuilder B;\n";<br>
> +      Out << " {\n    AttrBuilder B;\n";<br>
><br>
>  #define HANDLE_ATTR(X)                                     \<br>
>        if (attrs.hasAttribute(Attributes::X))               \<br>
> -        Out << "   B.addAttribute(Attributes::" #X ");\n"; \<br>
> +        Out << "    B.addAttribute(Attributes::" #X ");\n"; \<br>
>        attrs.removeAttribute(Attributes::X);<br>
><br>
>        HANDLE_ATTR(SExt);<br>
> @@ -509,11 +509,10 @@<br>
>        HANDLE_ATTR(NonLazyBind);<br>
>  #undef HANDLE_ATTR<br>
>        if (attrs.hasAttribute(Attributes::StackAlignment))<br>
> -        Out << "B.addStackAlignmentAttr(" << attrs.getStackAlignment() << ")";<br>
> -      nl(Out);<br>
> +        Out << "    B.addStackAlignmentAttr(" << attrs.getStackAlignment() << ")\n";<br>
>        attrs.removeAttribute(Attributes::StackAlignment);<br>
>        assert(!attrs.hasAttributes() && "Unhandled attribute!");<br>
> -      Out << "PAWI.Attrs = Attributes::get(mod->getContext(), B);";<br>
> +      Out << "    PAWI.Attrs = Attributes::get(mod->getContext(), B);\n }";<br>
>        nl(Out);<br>
>        Out << "Attrs.push_back(PAWI);";<br>
>        nl(Out);<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>