Reflection: Fix class layout start offset calculations

Fixes <rdar://problem/29115967>.
This commit is contained in:
Slava Pestov
2016-11-09 18:36:01 -08:00
parent 83692bb398
commit db79762c3b
29 changed files with 262 additions and 104 deletions

View File

@@ -26,7 +26,7 @@ reflect(object: obj)
// CHECK-64: (class reflect_Array.TestClass)
// CHECK-64: Type info:
// CHECK-64: (class_instance size=24 alignment=16 stride=32 num_extra_inhabitants=0
// CHECK-64: (class_instance size=24 alignment=8 stride=32 num_extra_inhabitants=0
// CHECK-64: (field name=t offset=16
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=1
// CHECK-64: (field name=_buffer offset=0
@@ -42,7 +42,7 @@ reflect(object: obj)
// CHECK-32: (class reflect_Array.TestClass)
// CHECK-32: Type info:
// CHECK-32: (class_instance size=16 alignment=16 stride=16 num_extra_inhabitants=0
// CHECK-32: (class_instance size=16 alignment=4 stride=16 num_extra_inhabitants=0
// CHECK-32: (field name=t offset=12
// CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=1
// CHECK-32: (field name=_buffer offset=0