| /* |
| * Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license |
| * that can be found in the LICENSE file. |
| */ |
| // IGNORE_NATIVE: optimizationMode=DEBUG |
| // IGNORE_NATIVE: optimizationMode=NO |
| |
| // https://youtrack.jetbrains.com/issue/KT-69731 |
| // IGNORE_NATIVE: gcType=CMS |
| |
| import kotlin.test.* |
| import kotlin.native.internal.* |
| |
| class C(val x: Int) |
| |
| fun localArray(x: Int): Int { |
| val c1 = C(x + 42) |
| val c2 = C(x + 117) |
| val c3 = C(x - 1) |
| val allC = arrayOf(c1, c2, c3) |
| val array = Array(x) { allC[it % 3] } |
| |
| assertTrue(c1.isStack()) |
| assertTrue(c2.isStack()) |
| assertTrue(c3.isStack()) |
| assertTrue(allC.isStack()) |
| assertFalse(array.isStack()) |
| return array[5].x |
| } |
| |
| fun box(): String { |
| assertEquals(localArray(43), 42) |
| |
| return "OK" |
| } |