mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
In https://github.com/swiftlang/swift/pull/78467 and https://github.com/swiftlang/swift/pull/78961, we stopped emitting metadata for private C++ fields. However, this created a mismatch between the fields emitted and the number of fields + their offsets in the StructDescriptor.
rdar://147263490
(cherry picked from commit 72b13b3b48)
38 lines
936 B
Swift
38 lines
936 B
Swift
// RUN: %target-run-simple-swift(-cxx-interoperability-mode=default -Xfrontend -disable-availability-checking -I %S/Inputs) | %FileCheck %s
|
|
|
|
// REQUIRES: executable_test
|
|
|
|
import SimpleStructs
|
|
|
|
func printCxxStructPrivateFields() {
|
|
let s = HasPrivateFieldsOnly(1, 2)
|
|
print(s)
|
|
}
|
|
|
|
func printCxxStructPublicFields() {
|
|
let s = HasPublicFieldsOnly(1, 2)
|
|
print(s)
|
|
}
|
|
|
|
func printCxxStructPrivatePublicProtectedFields() {
|
|
let s = HasPrivatePublicProtectedFields(1, 2, 3, 4, 5, 6)
|
|
print(s)
|
|
}
|
|
|
|
func printCxxStructNested() {
|
|
let s = Outer()
|
|
print(s)
|
|
}
|
|
|
|
printCxxStructPrivateFields()
|
|
// CHECK: HasPrivateFieldsOnly()
|
|
|
|
printCxxStructPublicFields()
|
|
// CHECK: HasPublicFieldsOnly(publ1: 1, publ2: 2)
|
|
|
|
printCxxStructPrivatePublicProtectedFields()
|
|
// CHECK: HasPrivatePublicProtectedFields(publ1: 2, publ2: 6)
|
|
|
|
printCxxStructNested()
|
|
// CHECK: Outer(publStruct: {{.*}}.HasPrivatePublicProtectedFields(publ1: 8, publ2: 12))
|