Files
swift-mirror/unittests/runtime/Stdlib.cpp
Saleem Abdulrasool c4f448578e Revert "runtime: add a workaround for Windows build"
This reverts commit efaf1fbefa.
Add a much more palatable workaround for the unit tests.  Rather than
adding the dllimport for the symbols, locally define the required
symbols.  This list is sufficient to restore the ability to build tests
for Windows.
2019-09-16 15:31:01 -07:00

509 lines
13 KiB
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
//
//===----------------------------------------------------------------------===//
#include "swift/Runtime/Metadata.h"
#include "swift/Demangling/ManglingMacros.h"
using namespace swift;
// Placeholders for Swift functions that the C++ runtime references
// but that the test code does not link to.
// AnyHashable
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _swift_makeAnyHashableUsingDefaultRepresentation(
const OpaqueValue *value,
const void *anyHashableResultPointer,
const Metadata *T,
const WitnessTable *hashableWT
) {
abort();
}
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss11AnyHashableVMn[1] = {0};
// SwiftHashableSupport
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool _swift_stdlib_Hashable_isEqual_indirect(
const void *lhsValue, const void *rhsValue, const Metadata *type,
const void *wt) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
intptr_t _swift_stdlib_Hashable_hashValue_indirect(
const void *value, const Metadata *type, const void *wt) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _swift_convertToAnyHashableIndirect(
OpaqueValue *source, OpaqueValue *destination, const Metadata *sourceType,
const void *sourceConformance) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool _swift_anyHashableDownCastConditionalIndirect(
OpaqueValue *source, OpaqueValue *destination, const Metadata *targetType) {
abort();
}
// Casting
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _swift_arrayDownCastIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceValueType,
const Metadata *targetValueType) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool _swift_arrayDownCastConditionalIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceValueType,
const Metadata *targetValueType) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _swift_setDownCastIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceValueType,
const Metadata *targetValueType,
const void *sourceValueHashable,
const void *targetValueHashable) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool _swift_setDownCastConditionalIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceValueType,
const Metadata *targetValueType,
const void *sourceValueHashable,
const void *targetValueHashable) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _swift_dictionaryDownCastIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceKeyType,
const Metadata *sourceValueType,
const Metadata *targetKeyType,
const Metadata *targetValueType,
const void *sourceKeyHashable,
const void *targetKeyHashable) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool _swift_dictionaryDownCastConditionalIndirect(OpaqueValue *destination,
OpaqueValue *source,
const Metadata *sourceKeyType,
const Metadata *sourceValueType,
const Metadata *targetKeyType,
const Metadata *targetValueType,
const void *sourceKeyHashable,
const void *targetKeyHashable) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _bridgeNonVerbatimBoxedValue(const OpaqueValue *sourceValue,
OpaqueValue *destValue,
const Metadata *nativeType) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void _bridgeNonVerbatimFromObjectiveCToAny(HeapObject *sourceValue,
OpaqueValue *destValue) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool swift_unboxFromSwiftValueWithType(OpaqueValue *source,
OpaqueValue *result,
const Metadata *destinationType) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
bool swift_swiftValueConformsTo(const Metadata *destinationType) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_API
HeapObject *$ss27_bridgeAnythingToObjectiveCyyXlxlF(OpaqueValue *src, const Metadata *srcType) {
abort();
}
// ErrorObject
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
int $ss13_getErrorCodeySiSPyxGs0B0RzlF(void *) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void *$ss23_getErrorDomainNSStringyyXlSPyxGs0B0RzlF(void *) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void *$ss29_getErrorUserInfoNSDictionaryyyXlSgSPyxGs0B0RzlF(void *) {
abort();
}
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
void *$ss32_getErrorEmbeddedNSErrorIndirectyyXlSgSPyxGs0B0RzlF(void *) {
abort();
}
// Hashable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $SkMp[1] = {0};
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSHMp[1] = {0};
// Array
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSaMn[1] = {0};
// Dictionary
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ssSdVMn[1] = {0};
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSDMn[1] = {0};
// Set
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ssSeVMn[1] = {0};
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sShMn[1] = {0};
// Bool
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSbMn[1] = {0};
// Binary Floating Point
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSBMp[1] = {0};
// Double
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSdMn[1] = {0};
// RandomNumberGenerator
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSGMp[1] = {0};
// Int
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSiMn[1] = {0};
// DefaultIndicis
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSIMn[1] = {0};
// Character
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSJMn[1] = {0};
// Numeric
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSjMp[1] = {0};
// RandomAccessCollection
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSkMp[1] = {0};
// BidirectionalCollection
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSKMp[1] = {0};
// RangeReplacementCollection
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSmMp[1] = {0};
// MutationCollection
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSMMp[1] = {0};
// Range
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSnMn[1] = {0};
// ClosedRange
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSNMn[1] = {0};
// ObjectIdentifier
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSOMn[1] = {0};
// UnsafeMutablePointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSpMn[1] = {0};
// Optional
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSqMn[1] = {0};
// Equatable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSQMp[1] = {0};
// UnsafeMutableBufferPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSrMn[1] = {0};
// UnsafeBufferPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSRMn[1] = {0};
// String
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSSMn[1] = {0};
// Sequence
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSTMp[1] = {0};
// UInt
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSuMn[1] = {0};
// UnsignedInteger
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSUMp[1] = {0};
// UnsafeMutableRawPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSvMn[1] = {0};
// Strideable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSxMp[1] = {0};
// RangeExpression
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSXMp[1] = {0};
// StringProtocol
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSyMp[1] = {0};
// RawRepresentable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSYMp[1] = {0};
// BinaryInteger
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSzMp[1] = {0};
// Decodable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSeMp[1] = {0};
// Encodable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSEMp[1] = {0};
// Float
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSfMn[1] = {0};
// FloatingPoint
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSFMp[1] = {0};
// Collection
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSlMp[1] = {0};
// Comparable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSLMp[1] = {0};
// UnsafePointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSPMn[1] = {0};
// Substring
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSsMn[1] = {0};
// IteratorProtocol
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sStMp[1] = {0};
// UnsafeRawPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSVMn[1] = {0};
// UnsafeMutableRawBufferPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSwMn[1] = {0};
// UnsafeRawBufferPointer
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSWMn[1] = {0};
// SignedInteger
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $sSZMp[1] = {0};
// Mirror
// protocol witness table for Swift._ClassSuperMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss17_ClassSuperMirrorVs01_C0sWP[1] = {0};
// type metadata accessor for Swift._ClassSuperMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss17_ClassSuperMirrorVMa[1] = {0};
// protocol witness table for Swift._MetatypeMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss15_MetatypeMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._MetatypeMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss15_MetatypeMirrorVMa[1] = {0};
// protocol witness table for Swift._EnumMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss11_EnumMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._EnumMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss11_EnumMirrorVMa[1] = {0};
// protocol witness table for Swift._OpaqueMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss13_OpaqueMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._OpaqueMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss13_OpaqueMirrorVMa[1] = {0};
// protocol witness table for Swift._StructMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss13_StructMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._StructMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss13_StructMirrorVMa[1] = {0};
// protocol witness table for Swift._TupleMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss12_TupleMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._TupleMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss12_TupleMirrorVMa[1] = {0};
// protocol witness table for Swift._ClassMirror : Swift._Mirror in Swift
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss12_ClassMirrorVs01_B0sWP[1] = {0};
// type metadata accessor for Swift._ClassMirror
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss12_ClassMirrorVMa[1] = {0};
// KeyPath
SWIFT_RUNTIME_STDLIB_SPI
const HeapObject *swift_getKeyPathImpl(const void *p,
const void *e,
const void *a) {
abort();
}
// playground print hook
struct swift_closure {
void *fptr;
HeapObject *context;
};
SWIFT_RUNTIME_STDLIB_API SWIFT_CC(swift) swift_closure
MANGLE_SYM(s20_playgroundPrintHookySScSgvg)() {
return {nullptr, nullptr};
}
// ObjectiveC Bridgeable
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss21_ObjectiveCBridgeableMp[1] = {0};
// Key Path
SWIFT_RUNTIME_STDLIB_INTERNAL
const long long $ss7KeyPathCMo[1] = {0};