Skip to content

Commit e66ad5a

Browse files
test: Fix test/IRGen/stdlib/Mutex.swift for 32-bit platforms
The test was failing on 32-bit platforms because the offset of the layout of struct metadata depends on the pointer size. | Field | Type | Offset (32-bit) | Offset (64-bit) | |-------------------------|------|-----------------|-----------------| | Layout String Pointer | ptr | 4 * (-2) | 4 * (-4) | | VWT | ptr | 4 * (-1) | 4 * (-2) | | Metadata Flags | ptr | 4 * 0 | 4 * 0 | | Nominal Type Descriptor | ptr | 4 * 1 | 4 * 2 | | Generic Requirement | ptr | 4 * 2 | 4 * 4 | | Field Offset for handle | i32 | 4 * 3 | 4 * 6 | | Field Offset for value | i32 | 4 * 4 | 4 * 7 |
1 parent 37927fd commit e66ad5a

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

test/IRGen/stdlib/Mutex.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ final class Awaitable<Value, Failure>: Sendable where Value: Sendable, Failure:
3333
// CHECK: [[DEST_HANDLE_PTR:%.*]] = getelementptr inbounds %T15Synchronization5MutexV, ptr [[DEST]], i32 0, i32 0
3434
// CHECK: [[SRC_HANDLE_PTR:%.*]] = getelementptr inbounds %T15Synchronization5MutexV, ptr [[SRC]], i32 0, i32 0
3535
// CHECK: call void @llvm.memcpy.p0.p0.i{{32|64}}(ptr {{.*}} [[DEST_HANDLE_PTR]], ptr {{.*}} [[SRC_HANDLE_PTR]], i{{32|64}} {{.*}}, i1 false)
36-
// CHECK: [[DEST_MUTEX_VALUE_OFFSET_PTR:%.*]] = getelementptr inbounds i32, ptr [[MUTEX]], i{{32|64}} 7
36+
// CHECK: [[DEST_MUTEX_VALUE_OFFSET_PTR:%.*]] = getelementptr inbounds i32, ptr [[MUTEX]], i{{32 4|64 7}}
3737
// CHECK: [[DEST_MUTEX_VALUE_OFFSET:%.*]] = load i32, ptr [[DEST_MUTEX_VALUE_OFFSET_PTR]]
3838
// CHECK: [[DEST_VALUE_PTR:%.*]] = getelementptr inbounds i8, ptr [[DEST]], i32 [[DEST_MUTEX_VALUE_OFFSET]]
39-
// CHECK: [[SRC_MUTEX_VALUE_OFFSET_PTR:%.*]] = getelementptr inbounds i32, ptr [[MUTEX]], i{{32|64}} 7
39+
// CHECK: [[SRC_MUTEX_VALUE_OFFSET_PTR:%.*]] = getelementptr inbounds i32, ptr [[MUTEX]], i{{32 4|64 7}}
4040
// CHECK: [[SRC_MUTEX_VALUE_OFFSET:%.*]] = load i32, ptr [[SRC_MUTEX_VALUE_OFFSET_PTR]]
4141
// CHECK: [[SRC_VALUE_PTR:%.*]] = getelementptr inbounds i8, ptr [[SRC]], i32 [[SRC_MUTEX_VALUE_OFFSET]]
4242

0 commit comments

Comments
 (0)