Merge pull request #3832 from kinke/fix_compilability

Fix little compilability regression
This commit is contained in:
Martin Kinkelin 2021-09-18 02:39:40 +02:00 committed by GitHub
parent 88d8a2f856
commit 406e469e99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 34 deletions

View file

@ -152,26 +152,26 @@ void emitLLVMUsedArray(IRState &irs) {
llvmUsed->setSection("llvm.metadata");
}
bool inlineAsmDiagnostic(IRState* irs,const llvm::SMDiagnostic &d, unsigned locCookie)
{
if (!locCookie) {
d.print(nullptr, llvm::errs());
return true;
}
// replace the `<inline asm>` dummy filename by the LOC of the actual D
// expression/statement (`myfile.d(123)`)
const Loc &loc = irs->getInlineAsmSrcLoc(locCookie);
const char *filename = loc.toChars(/*showColumns*/ false);
// keep on using llvm::SMDiagnostic::print() for nice, colorful output
llvm::SMDiagnostic d2(*d.getSourceMgr(), d.getLoc(), filename, d.getLineNo(),
d.getColumnNo(), d.getKind(), d.getMessage(),
d.getLineContents(), d.getRanges(), d.getFixIts());
d2.print(nullptr, llvm::errs());
bool inlineAsmDiagnostic(IRState *irs, const llvm::SMDiagnostic &d,
unsigned locCookie) {
if (!locCookie) {
d.print(nullptr, llvm::errs());
return true;
}
// replace the `<inline asm>` dummy filename by the LOC of the actual D
// expression/statement (`myfile.d(123)`)
const Loc &loc = irs->getInlineAsmSrcLoc(locCookie);
const char *filename = loc.toChars(/*showColumns*/ false);
// keep on using llvm::SMDiagnostic::print() for nice, colorful output
llvm::SMDiagnostic d2(*d.getSourceMgr(), d.getLoc(), filename, d.getLineNo(),
d.getColumnNo(), d.getKind(), d.getMessage(),
d.getLineContents(), d.getRanges(), d.getFixIts());
d2.print(nullptr, llvm::errs());
return true;
}
#if LDC_LLVM_VER < 1300
void inlineAsmDiagnosticHandler(const llvm::SMDiagnostic &d, void *context,
unsigned locCookie) {

View file

@ -29,26 +29,14 @@ IrFunction::IrFunction(FuncDeclaration *fd)
}
void IrFunction::setNeverInline() {
assert(!func->getAttributes()
#if LDC_LLVM_VER < 1400
.hasAttribute(LLAttributeList::FunctionIndex,
#else
.hasFnAttr(
#endif
llvm::Attribute::AlwaysInline) &&
"function can't be never- and always-inline at the same time");
assert(!func->hasFnAttribute(llvm::Attribute::AlwaysInline) &&
"function can't be never- and always-inline at the same time");
func->addFnAttr(llvm::Attribute::NoInline);
}
void IrFunction::setAlwaysInline() {
assert(!func->getAttributes()
#if LDC_LLVM_VER < 1400
.hasAttribute(LLAttributeList::FunctionIndex,
#else
.hasFnAttr(
#endif
llvm::Attribute::NoInline) &&
"function can't be never- and always-inline at the same time");
assert(!func->hasFnAttribute(llvm::Attribute::NoInline) &&
"function can't be never- and always-inline at the same time");
func->addFnAttr(llvm::Attribute::AlwaysInline);
}