[llvm-commits] [llvm] r166762 - /llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Fri Oct 26 02:14:39 PDT 2012
Author: geoffray
Date: Fri Oct 26 04:14:38 2012
New Revision: 166762
URL: http://llvm.org/viewvc/llvm-project?rev=166762&view=rev
Log:
Fix CPP backend for method attributes by creating a block where a new AttrBuilder is defined for each attribute.
Modified:
llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
Modified: llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp?rev=166762&r1=166761&r2=166762&view=diff
==============================================================================
--- llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp (original)
+++ llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp Fri Oct 26 04:14:38 2012
@@ -476,11 +476,11 @@
unsigned index = PAL.getSlot(i).Index;
AttrBuilder attrs(PAL.getSlot(i).Attrs);
Out << "PAWI.Index = " << index << "U;\n";
- Out << " AttrBuilder B;\n";
+ Out << " {\n AttrBuilder B;\n";
#define HANDLE_ATTR(X) \
if (attrs.hasAttribute(Attributes::X)) \
- Out << " B.addAttribute(Attributes::" #X ");\n"; \
+ Out << " B.addAttribute(Attributes::" #X ");\n"; \
attrs.removeAttribute(Attributes::X);
HANDLE_ATTR(SExt);
@@ -509,11 +509,10 @@
HANDLE_ATTR(NonLazyBind);
#undef HANDLE_ATTR
if (attrs.hasAttribute(Attributes::StackAlignment))
- Out << "B.addStackAlignmentAttr(" << attrs.getStackAlignment() << ")";
- nl(Out);
+ Out << " B.addStackAlignmentAttr(" << attrs.getStackAlignment() << ")\n";
attrs.removeAttribute(Attributes::StackAlignment);
assert(!attrs.hasAttributes() && "Unhandled attribute!");
- Out << "PAWI.Attrs = Attributes::get(mod->getContext(), B);";
+ Out << " PAWI.Attrs = Attributes::get(mod->getContext(), B);\n }";
nl(Out);
Out << "Attrs.push_back(PAWI);";
nl(Out);
More information about the llvm-commits
mailing list