summaryrefslogtreecommitdiff
path: root/lib/Target/CppBackend
diff options
context:
space:
mode:
authorNicolas Geoffray <nicolas.geoffray@lip6.fr>2012-10-26 09:14:38 +0000
committerNicolas Geoffray <nicolas.geoffray@lip6.fr>2012-10-26 09:14:38 +0000
commit8b1b4136a0cce28ab2740473be215d22e3b005a9 (patch)
tree8cab9942f9bcc764e6d2a26d32ce3a24320f177d /lib/Target/CppBackend
parentf098be4f8669a59282136485b8d2602e334a519e (diff)
downloadllvm-8b1b4136a0cce28ab2740473be215d22e3b005a9.tar.gz
llvm-8b1b4136a0cce28ab2740473be215d22e3b005a9.tar.bz2
llvm-8b1b4136a0cce28ab2740473be215d22e3b005a9.tar.xz
Fix CPP backend for method attributes by creating a block where a new AttrBuilder is defined for each attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166762 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CppBackend')
-rw-r--r--lib/Target/CppBackend/CPPBackend.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp
index 61fb4e98ec..dd00b7d48b 100644
--- a/lib/Target/CppBackend/CPPBackend.cpp
+++ b/lib/Target/CppBackend/CPPBackend.cpp
@@ -476,11 +476,11 @@ void CppWriter::printAttributes(const AttrListPtr &PAL,
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 @@ void CppWriter::printAttributes(const AttrListPtr &PAL,
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);