blob: 10551c8f7ceaab8d545d457a3da221f4037ca85b [file]
// TARGET_BACKEND: NATIVE
// FILECHECK_STAGE: CStubs
// FREE_COMPILER_ARGS: -Xdisable-phases=DCEPhase
interface I1 {
fun foo(): Int
}
class C1 : I1 {
override fun foo(): Nothing = TODO()
}
// CHECK-LABEL: define i32 @"kfun:C1#$<bridge-DN>foo(){}kotlin.Nothing(){}kotlin.Int
// CHECK-LABEL: epilogue:
open class Foo2<T>(val x: T)
interface I2 {
val x: Unit
}
class Bar2 : Foo2<Unit>(Unit), I2
// CHECK-LABEL: define void @"kfun:Bar2#$<bridge-DN><get-x>(){}(){}
// CHECK-LABEL: epilogue:
fun getX2(i: I2) = i.x
interface I3 {
fun foo(): Nothing
}
open class Foo3<T : Int> {
fun foo(): T = TODO()
}
class Bar3 : Foo3<Nothing>(), I3
// CHECK-LABEL: define void @"kfun:Bar3#$<bridge-DN>foo(){}kotlin.Nothing(){}kotlin.Nothing
// CHECK-LABEL: epilogue:
// CHECK-LABEL: define ptr @"kfun:#box(){}kotlin.String"
fun box(): String {
val i1: I1 = C1()
try {
println(i1.foo())
} catch (t: Throwable) { }
val i2: I2 = Bar2()
getX2(i2)
val i3: I3 = Bar3()
try {
i3.foo()
} catch (t: Throwable) { }
return "OK"
}