diff --git a/konan/konan.properties b/konan/konan.properties index f569b1e352a..358ba48b5b6 100644 --- a/konan/konan.properties +++ b/konan/konan.properties @@ -114,7 +114,10 @@ targetSysRoot.ios_arm64 = target-sysroot-9-ios_arm64 clangFlags.ios_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir clangNooptFlags.ios_arm64 = -O1 clangOptFlags.ios_arm64 = -O3 -clangDebugFlags.ios_arm64 = -O0 +# We force LLVM to use SelectionDAG because fast isel may miscompile sign extension. +# Related: +# https://github.com/JetBrains/kotlin-native/issues/3290 +clangDebugFlags.ios_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false clangDynamicFlags.ios_arm64 = linkerNoDebugFlags.ios_arm64 = -S @@ -192,7 +195,7 @@ targetSysRoot.tvos_arm64 = target-sysroot-9-tvos_arm64 clangFlags.tvos_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir clangNooptFlags.tvos_arm64 = -O1 clangOptFlags.tvos_arm64 = -O3 -clangDebugFlags.tvos_arm64 = -O0 +clangDebugFlags.tvos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false clangDynamicFlags.tvos_arm64 = linkerNoDebugFlags.tvos_arm64 = -S