diff --git a/driver/main.cpp b/driver/main.cpp index 38958c245a..1e49ab4689 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -1007,7 +1007,11 @@ static void emitJson(Modules &modules) { } int cppmain(int argc, char **argv) { +#if LDC_LLVM_VER >= 309 + llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); +#else llvm::sys::PrintStackTraceOnErrorSignal(); +#endif exe_path::initialize(argv[0], reinterpret_cast(main)); diff --git a/gen/arrays.cpp b/gen/arrays.cpp index 7ef9e8e5e9..bd5a2ed497 100644 --- a/gen/arrays.cpp +++ b/gen/arrays.cpp @@ -579,7 +579,11 @@ void initializeArrayLiteral(IRState *p, ArrayLiteralExp *ale, LLValue *dstMem) { auto gvar = new llvm::GlobalVariable(gIR->module, constarr->getType(), true, LLGlobalValue::InternalLinkage, constarr, ".arrayliteral"); +#if LDC_LLVM_VER >= 309 + gvar->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); +#else gvar->setUnnamedAddr(true); +#endif DtoMemCpy(dstMem, gvar, DtoConstSize_t(getTypeAllocSize(constarr->getType()))); } diff --git a/gen/toconstelem.cpp b/gen/toconstelem.cpp index 813e919d9e..a0a7570f82 100644 --- a/gen/toconstelem.cpp +++ b/gen/toconstelem.cpp @@ -179,7 +179,11 @@ public: llvm::GlobalValue::PrivateLinkage; gvar = new llvm::GlobalVariable(gIR->module, _init->getType(), true, _linkage, _init, ".str"); +#if LDC_LLVM_VER >= 309 + gvar->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); +#else gvar->setUnnamedAddr(true); +#endif (*stringLiteralCache)[key] = gvar; } @@ -543,7 +547,11 @@ public: auto gvar = new llvm::GlobalVariable( gIR->module, initval->getType(), canBeConst, llvm::GlobalValue::InternalLinkage, initval, ".dynarrayStorage"); +#if LDC_LLVM_VER >= 309 + gvar->setUnnamedAddr(canBeConst ? llvm::GlobalValue::UnnamedAddr::Global : llvm::GlobalValue::UnnamedAddr::None); +#else gvar->setUnnamedAddr(canBeConst); +#endif llvm::Constant *store = DtoBitCast(gvar, getPtrToType(arrtype)); if (bt->ty == Tpointer) { diff --git a/gen/toir.cpp b/gen/toir.cpp index 6c9a179073..dcc8d016af 100644 --- a/gen/toir.cpp +++ b/gen/toir.cpp @@ -469,7 +469,11 @@ public: } gvar = new llvm::GlobalVariable(gIR->module, at, true, _linkage, _init, ".str"); +#if LDC_LLVM_VER >= 309 + gvar->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); +#else gvar->setUnnamedAddr(true); +#endif (*stringLiteralCache)[key] = gvar; } diff --git a/gen/tollvm.cpp b/gen/tollvm.cpp index 03b5fe1a48..8501a36016 100644 --- a/gen/tollvm.cpp +++ b/gen/tollvm.cpp @@ -462,7 +462,11 @@ LLConstant *DtoConstString(const char *str) { gvar = new llvm::GlobalVariable(gIR->module, init->getType(), true, llvm::GlobalValue::PrivateLinkage, init, ".str"); +#if LDC_LLVM_VER >= 309 + gvar->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); +#else gvar->setUnnamedAddr(true); +#endif gIR->stringLiteral1ByteCache[s] = gvar; } LLConstant *idxs[] = {DtoConstUint(0), DtoConstUint(0)}; diff --git a/ir/irclass.cpp b/ir/irclass.cpp index aa4f395c3b..670c0be172 100644 --- a/ir/irclass.cpp +++ b/ir/irclass.cpp @@ -353,7 +353,11 @@ llvm::GlobalVariable *IrAggr::getInterfaceVtbl(BaseClass *b, bool new_instance, // Thunks themselves don't have an identity, only the target // function has. +#if LDC_LLVM_VER >= 309 + thunk->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); +#else thunk->setUnnamedAddr(true); +#endif #if LDC_LLVM_VER >= 307 // thunks don't need exception handling themselves