Assume all user functions to be @Used when compiling for -produce dynamic.

This commit is contained in:
Alexander Gorshenev
2017-11-20 15:40:23 +03:00
committed by alexander-gorshenev
parent de41c5a71f
commit 9c0a583801
2 changed files with 7 additions and 4 deletions
@@ -69,10 +69,6 @@ internal inline fun<R> generateFunction(codegen: CodeGenerator,
startLocation,
endLocation,
descriptor), code)
if (descriptor.usedAnnotation) {
codegen.context.llvm.usedFunctions.add(llvmFunction)
}
}
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
@@ -590,6 +591,12 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map<IrE
}
}
if (declaration.descriptor.usedAnnotation ||
context.config.configuration.get(KonanConfigKeys.PRODUCE) == CompilerOutputKind.DYNAMIC) {
context.llvm.usedFunctions.add(codegen.llvmFunction(declaration.descriptor))
}
if (context.shouldVerifyBitCode())
verifyModule(context.llvmModule!!,
"${declaration.descriptor.containingDeclaration}::${ir2string(declaration)}")