Fix compilation with LLVM 14 (#3822)

This commit is contained in:
Nicholas Wilson 2021-09-17 22:41:49 +08:00 committed by GitHub
parent 613ed42dca
commit 1568d0cdca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 135 additions and 33 deletions

View file

@ -11,18 +11,33 @@
#include "gen/irstate.h"
AttrSet::AttrSet(const AttrSet &base, unsigned index, LLAttribute attribute)
#if LDC_LLVM_VER >= 1400
: set(base.set.addAttributeAtIndex(gIR->context(), index, attribute)) {}
#else
: set(base.set.addAttribute(gIR->context(), index, attribute)) {}
#endif
AttrSet
AttrSet::extractFunctionAndReturnAttributes(const llvm::Function *function) {
auto old = function->getAttributes();
return {LLAttributeList::get(gIR->context(), old.getFnAttributes(),
old.getRetAttributes(), {})};
return {LLAttributeList::get(gIR->context(),
#if LDC_LLVM_VER >= 1400
old.getFnAttrs(),
old.getRetAttrs(),
#else
old.getFnAttributes(),
old.getRetAttributes(),
#endif
{})};
}
AttrSet &AttrSet::add(unsigned index, const llvm::AttrBuilder &builder) {
if (builder.hasAttributes()) {
#if LDC_LLVM_VER >= 1400
set = set.addAttributesAtIndex(gIR->context(), index, builder);
#else
set = set.addAttributes(gIR->context(), index, builder);
#endif
}
return *this;
}