mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
40 lines
1.1 KiB
Swift
40 lines
1.1 KiB
Swift
// RUN: %target-swift-frontend -emit-ir %s -enable-objc-interop -import-objc-header %S/Inputs/enum-anon.h | %FileCheck -check-prefix=CHECK -check-prefix=CHECK-%target-runtime %s
|
|
|
|
func verifyIsInt(_: inout Int) { }
|
|
func verifyIsInt32(_: inout Int32) { }
|
|
func verifyIsUInt32(_: inout UInt32) { }
|
|
|
|
var a = Constant2
|
|
var b = VarConstant2
|
|
|
|
/// https://github.com/apple/swift/issues/45116
|
|
/// Anonymous enums used as ad-hoc types should not be naively imported
|
|
/// as `Int`.
|
|
var c = Struct().adhocAnonEnumField
|
|
|
|
verifyIsInt(&a)
|
|
#if !os(Windows)
|
|
verifyIsUInt32(&b)
|
|
verifyIsUInt32(&c)
|
|
#else
|
|
verifyIsInt32(&b)
|
|
verifyIsInt32(&c)
|
|
#endif
|
|
|
|
// CHECK: %TSo6StructV = type <{ %Ts5Int32V, [[ENUM_TYPE:%Ts5Int32V|%Ts6UInt32V]], %Ts5Int32V }>
|
|
// CHECK-LABEL: define{{.*}} i32 @"$s4main6testIR1xs5Int32VSPySo6StructVG_tF"(
|
|
public func testIR(x: UnsafePointer<Struct>) -> CInt {
|
|
// CHECK: store i32 1, ptr @global, align 4
|
|
global = VarConstant2
|
|
|
|
#if _runtime(_ObjC)
|
|
// CHECK-objc: store i16 1, ptr @usGlobal, align 2
|
|
usGlobal = USVarConstant2
|
|
#endif
|
|
|
|
// Force the definition of the type above.
|
|
// CHECK: ret
|
|
return x.pointee.lastField
|
|
} // CHECK-NEXT: {{^}$}}
|
|
|