mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This replaces a number of `#include`-s like this:
```
#include "../../../stdlib/public/SwiftShims/Visibility.h"
```
with this:
```
#include "swift/shims/Visibility.h"
```
This is needed to allow SwiftCompilerSources to use C++ headers which include SwiftShims headers. Currently trying to do that results in errors:
```
swift/swift/include/swift/Demangling/../../../stdlib/public/SwiftShims/module.modulemap:1:8: error: redefinition of module 'SwiftShims'
module SwiftShims {
^
Builds.noindex/swift/swift/bootstrapping0/lib/swift/shims/module.modulemap:1:8: note: previously defined here
module SwiftShims {
^
```
This happens because the headers in both the source dir and the build dir refer to SwiftShims headers by relative path, and both the source root and the build root contain SwiftShims headers (which are equivalent, but since they are located in different dirs, Clang treats them as different modules).
115 lines
2.8 KiB
C++
115 lines
2.8 KiB
C++
//===--- GlobalObjects.h - Statically-initialized objects -------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Objects that are allocated at global scope instead of on the heap,
|
|
// and statically initialized to avoid synchronization costs, are
|
|
// defined here.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#ifndef SWIFT_STDLIB_SHIMS_GLOBALOBJECTS_H_
|
|
#define SWIFT_STDLIB_SHIMS_GLOBALOBJECTS_H_
|
|
|
|
#include "SwiftStdint.h"
|
|
#include "SwiftStdbool.h"
|
|
#include "HeapObject.h"
|
|
#include "Visibility.h"
|
|
|
|
#ifdef __cplusplus
|
|
#ifndef __swift__
|
|
namespace swift {
|
|
#endif
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct _SwiftArrayBodyStorage {
|
|
__swift_intptr_t count;
|
|
__swift_uintptr_t _capacityAndFlags;
|
|
};
|
|
|
|
struct _SwiftEmptyArrayStorage {
|
|
struct HeapObject header;
|
|
struct _SwiftArrayBodyStorage body;
|
|
};
|
|
|
|
SWIFT_RUNTIME_STDLIB_API
|
|
struct _SwiftEmptyArrayStorage _swiftEmptyArrayStorage;
|
|
|
|
struct _SwiftDictionaryBodyStorage {
|
|
__swift_intptr_t count;
|
|
__swift_intptr_t capacity;
|
|
__swift_int8_t scale;
|
|
__swift_int8_t reservedScale;
|
|
__swift_int16_t extra;
|
|
__swift_int32_t age;
|
|
__swift_intptr_t seed;
|
|
void *rawKeys;
|
|
void *rawValues;
|
|
};
|
|
|
|
struct _SwiftSetBodyStorage {
|
|
__swift_intptr_t count;
|
|
__swift_intptr_t capacity;
|
|
__swift_int8_t scale;
|
|
__swift_int8_t reservedScale;
|
|
__swift_int16_t extra;
|
|
__swift_int32_t age;
|
|
__swift_intptr_t seed;
|
|
void *rawElements;
|
|
};
|
|
|
|
struct _SwiftEmptyDictionarySingleton {
|
|
struct HeapObject header;
|
|
struct _SwiftDictionaryBodyStorage body;
|
|
__swift_uintptr_t metadata;
|
|
};
|
|
|
|
struct _SwiftEmptySetSingleton {
|
|
struct HeapObject header;
|
|
struct _SwiftSetBodyStorage body;
|
|
__swift_uintptr_t metadata;
|
|
};
|
|
|
|
SWIFT_RUNTIME_STDLIB_API
|
|
struct _SwiftEmptyDictionarySingleton _swiftEmptyDictionarySingleton;
|
|
|
|
SWIFT_RUNTIME_STDLIB_API
|
|
struct _SwiftEmptySetSingleton _swiftEmptySetSingleton;
|
|
|
|
struct _SwiftHashingParameters {
|
|
__swift_uint64_t seed0;
|
|
__swift_uint64_t seed1;
|
|
__swift_bool deterministic;
|
|
};
|
|
|
|
SWIFT_RUNTIME_STDLIB_API
|
|
struct _SwiftHashingParameters _swift_stdlib_Hashing_parameters;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
static_assert(
|
|
sizeof(_SwiftDictionaryBodyStorage) ==
|
|
5 * sizeof(__swift_intptr_t) + sizeof(__swift_int64_t),
|
|
"_SwiftDictionaryBodyStorage has unexpected size");
|
|
|
|
static_assert(
|
|
sizeof(_SwiftSetBodyStorage) ==
|
|
4 * sizeof(__swift_intptr_t) + sizeof(__swift_int64_t),
|
|
"_SwiftSetBodyStorage has unexpected size");
|
|
|
|
} // extern "C"
|
|
#ifndef __swift__
|
|
} // namespace swift
|
|
#endif
|
|
#endif
|
|
|
|
#endif
|