Skip to content

Commit ca7d39b

Browse files
committed
Runtime: share the visibility types
Use the common definitions rather than redefining macros everywhere. Centralise the type declarations in `Types.h`.
1 parent fe80df6 commit ca7d39b

File tree

2 files changed

+21
-27
lines changed

2 files changed

+21
-27
lines changed

Sources/Runtime/KnownMetadata.c

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,23 @@
22
// All Rights Reserved.
33
// SPDX-License-Identifier: BSD-3
44

5-
#if defined(__ELF__)
6-
#define SWIFT_RUNTIME_ABI __attribute__((__visibility__("default")))
7-
#elif defined(__MACH__)
8-
#define SWIFT_RUNTIME_ABI __attribute__((__visibility__("default")))
9-
#elif defined(__WASM__)
10-
#define SWIFT_RUNTIME_ABI __attribute__((__visibility__("default")))
11-
#else
12-
#define SWIFT_RUNTIME_ABI __declspec(dllexport)
13-
#endif
14-
15-
struct ValueWitnessTable {};
16-
17-
struct TypeMetadata {};
5+
#include "Types.h"
6+
#include "Visibility.h"
187

198
SWIFT_RUNTIME_ABI
20-
struct ValueWitnessTable $sBi8_WV;
9+
ValueWitnessTable $sBi8_WV;
2110

2211
SWIFT_RUNTIME_ABI
23-
struct ValueWitnessTable $sBi32_WV;
12+
ValueWitnessTable $sBi32_WV;
2413

2514
SWIFT_RUNTIME_ABI
26-
struct ValueWitnessTable $sytWV;
15+
ValueWitnessTable $sytWV;
2716

2817
SWIFT_RUNTIME_ABI
29-
struct TypeMetadata $sBi1_N;
18+
TypeMetadata $sBi1_N;
3019

3120
SWIFT_RUNTIME_ABI
32-
struct TypeMetadata $sBi8_N;
21+
TypeMetadata $sBi8_N;
3322

3423
SWIFT_RUNTIME_ABI
35-
struct TypeMetadata $sBi32_N;
24+
TypeMetadata $sBi32_N;

Sources/Runtime/Types.h

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,31 @@
66
#define uSwift_Runtime_Types_h
77

88
typedef struct Metadata Metadata;
9-
typedef struct EnumMetadata EnumMetadata;
10-
typedef struct ValueMetadata ValueMetadata;
119
typedef struct OpaqueValue OpaqueValue;
1210

13-
typedef struct ValueTypeDescriptor ValueTypeDescriptor;
11+
typedef enum EnumLayoutFlags {
12+
invalid,
13+
} EnumLayoutFlags;
14+
typedef struct EnumMetadata EnumMetadata;
15+
1416
typedef struct GenericValueMetadataPattern GenericValueMetadataPattern;
1517

18+
typedef struct HeapObject HeapObject;
19+
1620
typedef struct MetdataRequest {
1721
} MetadataRequest;
1822
typedef struct MetdataResponse {
1923
} MetadataResponse;
2024

2125
typedef struct TypeContextDescriptor TypeContextDescriptor;
2226
typedef struct TypeLayout TypeLayout;
27+
typedef struct TypeMetadata {
28+
} TypeMetadata;
2329

24-
typedef struct HeapObject HeapObject;
25-
26-
typedef enum EnumLayoutFlags {
27-
invalid,
28-
} EnumLayoutFlags;
30+
typedef struct ValueMetadata ValueMetadata;
31+
typedef struct ValueTypeDescriptor ValueTypeDescriptor;
32+
typedef struct ValueWitnessTable {
33+
} ValueWitnessTable;
2934

3035
typedef void(__attribute__((__swiftcall__)) *
3136
StoreExtraInhabitantTagFn)(OpaqueValue *value, unsigned store_case,

0 commit comments

Comments
 (0)