mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-13 10:32:06 +00:00
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
This commit is contained in:
parent
f098be4f86
commit
8b1b4136a0
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user