mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
119 lines
5.4 KiB
Swift
119 lines
5.4 KiB
Swift
// RUN: %target-swift-emit-ir -target armv7-apple-none-macho -parse-stdlib -module-name Swift %s -enable-experimental-feature Embedded -wmo -parse-as-library | %FileCheck %s --check-prefix CHECK --check-prefix CHECK-NONOPT
|
|
// RUN: %target-swift-emit-ir -target armv7-apple-none-macho -parse-stdlib -module-name Swift %s -enable-experimental-feature Embedded -wmo -parse-as-library -O | %FileCheck %s
|
|
|
|
// REQUIRES: swift_in_compiler
|
|
// REQUIRES: CODEGENERATOR=ARM
|
|
// REQUIRES: swift_feature_Embedded
|
|
|
|
precedencegroup AssignmentPrecedence { assignment: true }
|
|
public typealias IntegerLiteralType = Int
|
|
public typealias _MaxBuiltinIntegerType = Builtin.IntLiteral
|
|
public typealias _MaxBuiltinFloatType = Builtin.FPIEEE80
|
|
public protocol _ExpressibleByBuiltinIntegerLiteral {
|
|
init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType)
|
|
}
|
|
public protocol _ExpressibleByBuiltinFloatLiteral {
|
|
init(_builtinFloatLiteral value: _MaxBuiltinFloatType)
|
|
}
|
|
public protocol ExpressibleByIntegerLiteral {
|
|
associatedtype IntegerLiteralType : _ExpressibleByBuiltinIntegerLiteral
|
|
init(integerLiteral value: IntegerLiteralType)
|
|
}
|
|
public protocol ExpressibleByFloatLiteral {
|
|
associatedtype FloatLiteralType : _ExpressibleByBuiltinFloatLiteral
|
|
init(floatLiteral value: FloatLiteralType)
|
|
}
|
|
public struct Int : _ExpressibleByBuiltinIntegerLiteral, ExpressibleByIntegerLiteral {
|
|
var value: Builtin.Word
|
|
public init() {
|
|
self = 0
|
|
}
|
|
public init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType) {
|
|
let builtinValue = Builtin.s_to_s_checked_trunc_IntLiteral_Word(value).0
|
|
self.value = builtinValue
|
|
}
|
|
public init(integerLiteral value: IntegerLiteralType) {
|
|
self = value
|
|
}
|
|
}
|
|
|
|
private let global_int_1: Int = 0
|
|
public let global_int_2: Int = 0
|
|
private var global_int_3: Int = 0
|
|
public var global_int_4: Int = 0
|
|
|
|
private enum MyPrivateEnum { }
|
|
|
|
public enum MyPublicEnum { }
|
|
|
|
extension MyPrivateEnum {
|
|
private static let static_int_1: Int = 0
|
|
public static let static_int_2: Int = 0
|
|
private static var static_int_3: Int = 0
|
|
public static var static_int_4: Int = 0
|
|
}
|
|
|
|
extension MyPublicEnum {
|
|
private static let static_int_1: Int = 0
|
|
public static let static_int_2: Int = 0
|
|
private static var static_int_3: Int = 0
|
|
public static var static_int_4: Int = 0
|
|
}
|
|
|
|
private struct MyPrivateStruct {
|
|
var x, y: Int
|
|
}
|
|
|
|
private let global_myprivatestruct_1: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
private var global_myprivatestruct_3: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
|
|
extension MyPrivateEnum {
|
|
private static let static_myprivatestruct_1: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
private static var static_myprivatestruct_3: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
}
|
|
|
|
extension MyPublicEnum {
|
|
private static let static_myprivatestruct_1: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
private static var static_myprivatestruct_3: MyPrivateStruct = MyPrivateStruct(x: 0, y: 0)
|
|
}
|
|
|
|
public struct MyPublicStruct {
|
|
var x, y: Int
|
|
}
|
|
|
|
private let global_my_publicstruct_1: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public let global_my_publicstruct_2: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
private var global_my_publicstruct_3: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public var global_my_publicstruct_4: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
|
|
extension MyPrivateEnum {
|
|
private static let static_mypublicstruct_1: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public static let static_mypublicstruct_2: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
private static var static_mypublicstruct_3: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public static var static_mypublicstruct_4: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
}
|
|
|
|
extension MyPublicEnum {
|
|
private static let static_mypublicstruct_1: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public static let static_mypublicstruct_2: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
private static var static_mypublicstruct_3: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
public static var static_mypublicstruct_4: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
|
}
|
|
|
|
// CHECK-NONOPT: @"$es12global_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es12global_int_2Sivp" = {{.*}}zeroinitializer
|
|
// CHECK-NONOPT: @"$es12global_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es12global_int_4Sivp" = {{.*}}zeroinitializer
|
|
// CHECK-NONOPT: @"$es12MyPublicEnumO12static_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es12MyPublicEnumO12static_int_2SivpZ" = {{.*}}zeroinitializer
|
|
// CHECK-NONOPT: @"$es12MyPublicEnumO12static_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es12MyPublicEnumO12static_int_4SivpZ" = {{.*}}zeroinitializer
|
|
// CHECK-NONOPT: @"$es24global_my_publicstruct_133_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es24global_my_publicstruct_2s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
|
// CHECK-NONOPT: @"$es24global_my_publicstruct_333_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
|
// CHECK: @"$es24global_my_publicstruct_4s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
|
// CHECK-NOT: static_my_publicstruct_1
|
|
// CHECK: @"$es12MyPublicEnumO23static_mypublicstruct_2s0aB6StructVvpZ" = {{.*}}zeroinitializer
|
|
// CHECK-NOT: static_my_publicstruct_3
|
|
// CHECK: @"$es12MyPublicEnumO23static_mypublicstruct_4s0aB6StructVvpZ" = {{.*}}zeroinitializer
|