mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 02:45:25 +03:00
Merge branch 'master' into merge-2.067
This commit is contained in:
commit
ccd8dd06c5
3 changed files with 5 additions and 4 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "gen/llvmhelpers.h"
|
||||
#include "gen/logger.h"
|
||||
#include "gen/tollvm.h"
|
||||
#include "gen/optimizer.h"
|
||||
#include "ir/irtypeaggr.h"
|
||||
#include "llvm/ADT/SmallString.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
@ -42,7 +43,7 @@ Module *ldc::DIBuilder::getDefinedModule(Dsymbol *s)
|
|||
// array operations as well
|
||||
else if (FuncDeclaration* fd = s->isFuncDeclaration())
|
||||
{
|
||||
if (fd->isArrayOp && !isDruntimeArrayOp(fd))
|
||||
if (fd->isArrayOp && (willInline() || !isDruntimeArrayOp(fd)))
|
||||
return IR->dmodule;
|
||||
}
|
||||
// otherwise use the symbol's module
|
||||
|
|
|
@ -731,7 +731,7 @@ static llvm::GlobalValue::LinkageTypes lowerFuncLinkage(FuncDeclaration* fdecl)
|
|||
|
||||
// Generated array op functions behave like templates in that they might be
|
||||
// emitted into many different modules.
|
||||
if (fdecl->isArrayOp && !isDruntimeArrayOp(fdecl))
|
||||
if (fdecl->isArrayOp && (willInline() || !isDruntimeArrayOp(fdecl)))
|
||||
return templateLinkage;
|
||||
|
||||
// A body-less declaration always needs to be marked as external in LLVM
|
||||
|
@ -780,7 +780,7 @@ void DtoDefineFunction(FuncDeclaration* fd)
|
|||
}
|
||||
|
||||
// Skip array ops implemented in druntime
|
||||
if (fd->isArrayOp && isDruntimeArrayOp(fd))
|
||||
if (fd->isArrayOp && !willInline() && isDruntimeArrayOp(fd))
|
||||
{
|
||||
IF_LOG Logger::println("No code generation for array op %s implemented in druntime", fd->toChars());
|
||||
fd->ir.setDefined();
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4beed802a64b59bed4cc3aa446aae7ab38db92b8
|
||||
Subproject commit 8b60ac81835e092ed715369938d351dcff13a5e8
|
Loading…
Add table
Add a link
Reference in a new issue