diff --git a/gen/toir.cpp b/gen/toir.cpp index 0ca1d743..06cdb226 100644 --- a/gen/toir.cpp +++ b/gen/toir.cpp @@ -2297,7 +2297,11 @@ LLConstant* FuncExp::toConstElem(IRState* p) LOG_SCOPE; assert(fd); - assert(fd->tok == TOKfunction); + if (fd->tok != TOKfunction) + { + assert(fd->tok == TOKdelegate); + error("delegate literals as constant expressions are not yet allowed"); + } fd->codegen(Type::sir); assert(fd->ir.irFunc->func); diff --git a/gen/tollvm.cpp b/gen/tollvm.cpp index f459a5d7..687c86b0 100644 --- a/gen/tollvm.cpp +++ b/gen/tollvm.cpp @@ -265,9 +265,6 @@ LLGlobalValue::LinkageTypes DtoLinkage(Dsymbol* sym) // extern(C) functions are always external else if (ft->linkage == LINKc) return llvm::GlobalValue::ExternalLinkage; - // Function & delegate literals, foreach bodies and lazy parameters: internal linkage - else if (fdecl->isFuncLiteralDeclaration()) - return llvm::GlobalValue::InternalLinkage; } // class else if (ClassDeclaration* cd = sym->isClassDeclaration())