Files
swift-mirror/test/Serialization/raw_layout.swift
Joe Groff 009ce4b82a Add an "addressable for dependencies" flag to value witness flags.
This may be useful for type layout of borrow fields in the future, should we
decide that addressable-for-dependencies borrows should always be represented
by a pointer. rdar://153650278
2025-06-18 12:47:36 -07:00

32 lines
1.1 KiB
Swift

// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -enable-experimental-feature RawLayout -module-name raw_layout_fred -o %t %S/Inputs/raw_layout.swift
// RUN: %target-swift-frontend -I %t -I %S/Inputs -cxx-interoperability-mode=upcoming-swift -emit-ir %s -verify | %FileCheck %s
// REQUIRES: swift_feature_RawLayout
import raw_layout_fred
import RawLayoutCXX
// CHECK: %T15raw_layout_fred4FredVySbG = type <{ [1 x i8] }>
// CHECK-LABEL: @"$s{{[A-Za-z0-9_]*}}16WeirdCXXTypeCellVWV" = {{.*}} %swift.vwtable
// initializeWithTake
// CHECK-SAME: , ptr @"$s10raw_layout16WeirdCXXTypeCellVwtk
// assignWithTake
// CHECK-SAME: , ptr @"$s10raw_layout16WeirdCXXTypeCellVwta
// size
// CHECK-SAME: , {{i64|i32}} 1
// stride
// CHECK-SAME: , {{i64|i32}} 1
// flags: addressable for dependencies, not copyable, not bitwise takable, not pod, not inline
// CHECK-SAME: , i32 43188224
struct WeirdCXXTypeCell: ~Copyable {
let cell: CellThatMovesLike<NonBitwiseTakableCXXType>
}
do {
// CHECK: {{%.*}} = alloca %T15raw_layout_fred4FredVySbG
// CHECK: call swiftcc void @"$s15raw_layout_fred4FredVACyxGycfC"
let _ = Fred<Bool>()
}