blob: aeda79a6fea60cedd0cd8c4bca292ce40d734e2f [file] [log] [blame]
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify %s
import ctypes
func useStructWithUnion(_ vec: GLKVector4) -> GLKVector4 {
var vec = vec
_ = vec.v.0
_ = vec.v.1
_ = vec.v.2
_ = vec.v.3
vec.v = (0, 0, 0, 0)
}
func useUnionIndirectFields(_ vec: GLKVector4) -> GLKVector4 {
let _: CFloat = vec.x
let _: CFloat = vec.y
let _: CFloat = vec.z
let _: CFloat = vec.w
let _: CFloat = vec.r
let _: CFloat = vec.g
let _: CFloat = vec.b
let _: CFloat = vec.a
let _: CFloat = vec.s
let _: CFloat = vec.t
let _: CFloat = vec.p
let _: CFloat = vec.q
// Named indirect fields
let _: CFloat = vec.v.0
let _: CFloat = vec.v.1
let _: CFloat = vec.v.2
let _: CFloat = vec.v.3
return vec
}
func useStructWithNamedUnion(_ u: NamedUnion) -> NamedUnion {
var u1 = NamedUnion()
u1.a = u.a
u1.b = u.b
u1.intfloat = u.intfloat
return u1
}
func useStructWithAnonymousUnion(_ u: AnonUnion) -> AnonUnion {
let _: CFloat = u.a
let _: CFloat = u.b
let _: CFloat = u.c
let _: CFloat = u.d
let _: CInt = u.x
return u
}
func useStructWithUnnamedUnion(_ u: UnnamedUnion) -> UnnamedUnion {
var u = u
u.u.i = 100
u.u.f = 1.0
}