Fix enum isFrozen for wasm

This commit is contained in:
Alexander Shabalin
2021-04-05 14:07:29 +00:00
committed by Space
parent 9e7f6332d1
commit 451fc8e9df
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.backend.common.lower.irBlockBody
import org.jetbrains.kotlin.backend.common.runOnFilePostfix
import org.jetbrains.kotlin.backend.konan.Context
import org.jetbrains.kotlin.backend.konan.DECLARATION_ORIGIN_ENUM
import org.jetbrains.kotlin.backend.konan.MemoryModel
import org.jetbrains.kotlin.backend.konan.llvm.IntrinsicType
import org.jetbrains.kotlin.backend.konan.llvm.tryGetIntrinsicType
import org.jetbrains.kotlin.descriptors.ClassKind
@@ -303,6 +304,12 @@ internal class EnumClassLowering(val context: Context) : FileLoweringPass {
else -> error("Unexpected initializer: $initializer")
}
}
// Needed for legacy MM targets that do not support threads.
if (this@EnumClassLowering.context.memoryModel != MemoryModel.EXPERIMENTAL) {
+irCall(this@EnumClassLowering.context.ir.symbols.freeze, listOf(arrayType)).apply {
extensionReceiver = irGet(receiver)
}
}
}
(constructor.body as IrBlockBody).statements += valuesInitializer
}