From 5a59971b9576e6a0c9fc6e749b299c883c457696 Mon Sep 17 00:00:00 2001 From: Hugh Bellamy Date: Thu, 26 Jan 2017 15:23:36 +0000 Subject: [PATCH 1/2] Move Unreachable.h from include/Basic to include/Runtime --- include/swift/ABI/MetadataValues.h | 2 +- include/swift/Reflection/ReflectionContext.h | 2 +- include/swift/Reflection/TypeRef.h | 2 +- include/swift/Remote/MetadataReader.h | 2 +- include/swift/Runtime/Debug.h | 2 +- include/swift/Runtime/Metadata.h | 2 +- include/swift/{Basic => Runtime}/Unreachable.h | 6 +++--- stdlib/public/Reflection/TypeLowering.cpp | 2 +- stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp | 2 +- stdlib/public/runtime/Casting.cpp | 2 +- stdlib/public/runtime/ProtocolConformance.cpp | 2 +- stdlib/public/runtime/Reflection.mm | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) rename include/swift/{Basic => Runtime}/Unreachable.h (89%) diff --git a/include/swift/ABI/MetadataValues.h b/include/swift/ABI/MetadataValues.h index 20e7dd3af63..cc8fe77dd47 100644 --- a/include/swift/ABI/MetadataValues.h +++ b/include/swift/ABI/MetadataValues.h @@ -20,7 +20,7 @@ #define SWIFT_ABI_METADATAVALUES_H #include "swift/AST/Ownership.h" -#include "swift/Basic/Unreachable.h" +#include "swift/Runtime/Unreachable.h" #include #include diff --git a/include/swift/Reflection/ReflectionContext.h b/include/swift/Reflection/ReflectionContext.h index 114a08f0b30..338f150f99d 100644 --- a/include/swift/Reflection/ReflectionContext.h +++ b/include/swift/Reflection/ReflectionContext.h @@ -18,13 +18,13 @@ #ifndef SWIFT_REFLECTION_REFLECTIONCONTEXT_H #define SWIFT_REFLECTION_REFLECTIONCONTEXT_H -#include "swift/Basic/Unreachable.h" #include "swift/Remote/MemoryReader.h" #include "swift/Remote/MetadataReader.h" #include "swift/Reflection/Records.h" #include "swift/Reflection/TypeLowering.h" #include "swift/Reflection/TypeRef.h" #include "swift/Reflection/TypeRefBuilder.h" +#include "swift/Runtime/Unreachable.h" #include #include diff --git a/include/swift/Reflection/TypeRef.h b/include/swift/Reflection/TypeRef.h index fd24dcf68ad..425aba5762f 100644 --- a/include/swift/Reflection/TypeRef.h +++ b/include/swift/Reflection/TypeRef.h @@ -21,7 +21,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/Support/Casting.h" #include "swift/ABI/MetadataValues.h" -#include "swift/Basic/Unreachable.h" +#include "swift/Runtime/Unreachable.h" #include diff --git a/include/swift/Remote/MetadataReader.h b/include/swift/Remote/MetadataReader.h index e0a9210ff49..d00f26e740e 100644 --- a/include/swift/Remote/MetadataReader.h +++ b/include/swift/Remote/MetadataReader.h @@ -21,7 +21,7 @@ #include "swift/Remote/MemoryReader.h" #include "swift/Basic/Demangle.h" #include "swift/Basic/LLVM.h" -#include "swift/Basic/Unreachable.h" +#include "swift/Runtime/Unreachable.h" #include #include diff --git a/include/swift/Runtime/Debug.h b/include/swift/Runtime/Debug.h index d8ce205491f..044293acc0e 100644 --- a/include/swift/Runtime/Debug.h +++ b/include/swift/Runtime/Debug.h @@ -19,9 +19,9 @@ #include #include -#include "swift/Basic/Unreachable.h" #include "swift/Runtime/Config.h" #include "swift/Runtime/Metadata.h" +#include "swift/Runtime/Unreachable.h" #ifdef SWIFT_HAVE_CRASHREPORTERCLIENT diff --git a/include/swift/Runtime/Metadata.h b/include/swift/Runtime/Metadata.h index 5a1d4f9a4ab..24208048796 100644 --- a/include/swift/Runtime/Metadata.h +++ b/include/swift/Runtime/Metadata.h @@ -33,7 +33,7 @@ #include "swift/Basic/FlaggedPointer.h" #include "swift/Basic/RelativePointer.h" #include "swift/Basic/ManglingMacros.h" -#include "swift/Basic/Unreachable.h" +#include "swift/Runtime/Unreachable.h" #include "../../../stdlib/public/SwiftShims/HeapObject.h" namespace swift { diff --git a/include/swift/Basic/Unreachable.h b/include/swift/Runtime/Unreachable.h similarity index 89% rename from include/swift/Basic/Unreachable.h rename to include/swift/Runtime/Unreachable.h index 6ed40eda1c3..fb0ec75f2ec 100644 --- a/include/swift/Basic/Unreachable.h +++ b/include/swift/Runtime/Unreachable.h @@ -15,8 +15,8 @@ // //===----------------------------------------------------------------------===// -#ifndef SWIFT_BASIC_UNREACHABLE_H -#define SWIFT_BASIC_UNREACHABLE_H +#ifndef SWIFT_RUNTIME_UNREACHABLE_H +#define SWIFT_RUNTIME_UNREACHABLE_H #include "llvm/Support/Compiler.h" #include @@ -29,4 +29,4 @@ inline static void swift_unreachable(const char* msg) { abort(); } -#endif // SWIFT_BASIC_UNREACHABLE_H +#endif // SWIFT_RUNTIME_UNREACHABLE_H diff --git a/stdlib/public/Reflection/TypeLowering.cpp b/stdlib/public/Reflection/TypeLowering.cpp index 4a83c0ceb9d..296585c4b42 100644 --- a/stdlib/public/Reflection/TypeLowering.cpp +++ b/stdlib/public/Reflection/TypeLowering.cpp @@ -19,9 +19,9 @@ //===----------------------------------------------------------------------===// #include "swift/Reflection/TypeLowering.h" -#include "swift/Basic/Unreachable.h" #include "swift/Reflection/TypeRef.h" #include "swift/Reflection/TypeRefBuilder.h" +#include "swift/Runtime/Unreachable.h" #include diff --git a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp index e994dce9a24..4c42f09e994 100644 --- a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp +++ b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp @@ -10,10 +10,10 @@ // //===----------------------------------------------------------------------===// -#include "swift/Basic/Unreachable.h" #include "swift/Reflection/ReflectionContext.h" #include "swift/Reflection/TypeLowering.h" #include "swift/Remote/CMemoryReader.h" +#include "swift/Runtime/Unreachable.h" #include "swift/SwiftRemoteMirror/SwiftRemoteMirror.h" using namespace swift; diff --git a/stdlib/public/runtime/Casting.cpp b/stdlib/public/runtime/Casting.cpp index 7a23e353ff7..350e203174f 100644 --- a/stdlib/public/runtime/Casting.cpp +++ b/stdlib/public/runtime/Casting.cpp @@ -18,12 +18,12 @@ #include "swift/Basic/Demangle.h" #include "swift/Basic/Fallthrough.h" #include "swift/Basic/Lazy.h" -#include "swift/Basic/Unreachable.h" #include "swift/Runtime/Config.h" #include "swift/Runtime/Enum.h" #include "swift/Runtime/HeapObject.h" #include "swift/Runtime/Metadata.h" #include "swift/Runtime/Mutex.h" +#include "swift/Runtime/Unreachable.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/PointerIntPair.h" #include "swift/Runtime/Debug.h" diff --git a/stdlib/public/runtime/ProtocolConformance.cpp b/stdlib/public/runtime/ProtocolConformance.cpp index f0a9798c72b..cb582117704 100644 --- a/stdlib/public/runtime/ProtocolConformance.cpp +++ b/stdlib/public/runtime/ProtocolConformance.cpp @@ -16,10 +16,10 @@ #include "swift/Basic/LLVM.h" #include "swift/Basic/Lazy.h" -#include "swift/Basic/Unreachable.h" #include "swift/Runtime/Concurrent.h" #include "swift/Runtime/Metadata.h" #include "swift/Runtime/Mutex.h" +#include "swift/Runtime/Unreachable.h" #include "ImageInspection.h" #include "Private.h" diff --git a/stdlib/public/runtime/Reflection.mm b/stdlib/public/runtime/Reflection.mm index ead123a1bde..61fff944c87 100644 --- a/stdlib/public/runtime/Reflection.mm +++ b/stdlib/public/runtime/Reflection.mm @@ -11,12 +11,12 @@ //===----------------------------------------------------------------------===// #include "swift/Basic/Fallthrough.h" -#include "swift/Basic/Unreachable.h" #include "swift/Runtime/Reflection.h" #include "swift/Runtime/Config.h" #include "swift/Runtime/HeapObject.h" #include "swift/Runtime/Metadata.h" #include "swift/Runtime/Enum.h" +#include "swift/Runtime/Unreachable.h" #include "swift/Basic/Demangle.h" #include "swift/Runtime/Debug.h" #include "swift/Runtime/Portability.h" From 818099ecbe97529cb13a9b538cda0c3d7286b7a2 Mon Sep 17 00:00:00 2001 From: Hugh Bellamy Date: Thu, 26 Jan 2017 15:31:00 +0000 Subject: [PATCH 2/2] Rename swift_unreachable to swift_runtime_unreachable --- include/swift/ABI/MetadataValues.h | 2 +- include/swift/Reflection/ReflectionContext.h | 2 +- include/swift/Reflection/TypeRef.h | 2 +- include/swift/Remote/MetadataReader.h | 2 +- include/swift/Runtime/Debug.h | 2 +- include/swift/Runtime/Metadata.h | 6 +++--- include/swift/Runtime/Unreachable.h | 8 ++++---- stdlib/public/Reflection/TypeLowering.cpp | 10 +++++----- .../public/SwiftRemoteMirror/SwiftRemoteMirror.cpp | 2 +- stdlib/public/runtime/Casting.cpp | 11 ++++++----- stdlib/public/runtime/Metadata.cpp | 13 ++++++++----- stdlib/public/runtime/ProtocolConformance.cpp | 5 +++-- stdlib/public/runtime/Reflection.mm | 2 +- 13 files changed, 36 insertions(+), 31 deletions(-) diff --git a/include/swift/ABI/MetadataValues.h b/include/swift/ABI/MetadataValues.h index cc8fe77dd47..8f597c20ee9 100644 --- a/include/swift/ABI/MetadataValues.h +++ b/include/swift/ABI/MetadataValues.h @@ -381,7 +381,7 @@ public: return true; } - swift_unreachable("Unhandled ProtocolDispatchStrategy in switch."); + swift_runtime_unreachable("Unhandled ProtocolDispatchStrategy in switch."); } /// Return the identifier if this is a special runtime-known protocol. diff --git a/include/swift/Reflection/ReflectionContext.h b/include/swift/Reflection/ReflectionContext.h index 338f150f99d..8f30096532c 100644 --- a/include/swift/Reflection/ReflectionContext.h +++ b/include/swift/Reflection/ReflectionContext.h @@ -454,7 +454,7 @@ private: return true; } - swift_unreachable("Unhandled MetadataSourceKind in switch."); + swift_runtime_unreachable("Unhandled MetadataSourceKind in switch."); } /// Read metadata for a captured generic type from a closure context. diff --git a/include/swift/Reflection/TypeRef.h b/include/swift/Reflection/TypeRef.h index 425aba5762f..9f4c7157da4 100644 --- a/include/swift/Reflection/TypeRef.h +++ b/include/swift/Reflection/TypeRef.h @@ -783,7 +783,7 @@ public: #include "swift/Reflection/TypeRefs.def" } - swift_unreachable("Unhandled TypeRefKind in switch."); + swift_runtime_unreachable("Unhandled TypeRefKind in switch."); } }; diff --git a/include/swift/Remote/MetadataReader.h b/include/swift/Remote/MetadataReader.h index d00f26e740e..6f51e38f659 100644 --- a/include/swift/Remote/MetadataReader.h +++ b/include/swift/Remote/MetadataReader.h @@ -763,7 +763,7 @@ public: } } - swift_unreachable("Unhandled MetadataKind in switch"); + swift_runtime_unreachable("Unhandled MetadataKind in switch"); } BuiltType readTypeFromMangledName(const char *MangledTypeName, diff --git a/include/swift/Runtime/Debug.h b/include/swift/Runtime/Debug.h index 044293acc0e..a6904529fad 100644 --- a/include/swift/Runtime/Debug.h +++ b/include/swift/Runtime/Debug.h @@ -72,7 +72,7 @@ static inline void crash(const char *message) { CRSetCrashLogMessage(message); LLVM_BUILTIN_TRAP; - swift_unreachable("Expected compiler to crash."); + swift_runtime_unreachable("Expected compiler to crash."); } /// Report a corrupted type object. diff --git a/include/swift/Runtime/Metadata.h b/include/swift/Runtime/Metadata.h index 24208048796..b9dbfe0a285 100644 --- a/include/swift/Runtime/Metadata.h +++ b/include/swift/Runtime/Metadata.h @@ -1160,7 +1160,7 @@ public: return false; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /// Is this metadata for an existential type? @@ -1186,7 +1186,7 @@ public: return false; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /// Is this either type metadata or a class object for any kind of class? @@ -1267,7 +1267,7 @@ public: return RelativeDirectPointerNullPtrRef; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /// Get the generic metadata pattern from which this generic type instance was diff --git a/include/swift/Runtime/Unreachable.h b/include/swift/Runtime/Unreachable.h index fb0ec75f2ec..671e2616207 100644 --- a/include/swift/Runtime/Unreachable.h +++ b/include/swift/Runtime/Unreachable.h @@ -1,4 +1,4 @@ -//===--- Unreachable.h - Implements swift_unreachable -----------*- C++ -*-===// +//===--- Unreachable.h - Implements swift_runtime_unreachable ---*- C++ -*-===// // // This source file is part of the Swift.org open source project // @@ -10,8 +10,8 @@ // //===----------------------------------------------------------------------===// // -// This file defines swift_unreachable, an LLVM-independent implementation of -// llvm_unreachable. +// This file defines swift_runtime_unreachable, an LLVM-independent +// implementation of llvm_unreachable. // //===----------------------------------------------------------------------===// @@ -23,7 +23,7 @@ #include LLVM_ATTRIBUTE_NORETURN -inline static void swift_unreachable(const char* msg) { +inline static void swift_runtime_unreachable(const char *msg) { assert(false && msg); (void)msg; abort(); diff --git a/stdlib/public/Reflection/TypeLowering.cpp b/stdlib/public/Reflection/TypeLowering.cpp index 296585c4b42..81bcaa45e8c 100644 --- a/stdlib/public/Reflection/TypeLowering.cpp +++ b/stdlib/public/Reflection/TypeLowering.cpp @@ -186,7 +186,7 @@ public: } } - swift_unreachable("Bad TypeInfo kind"); + swift_runtime_unreachable("Bad TypeInfo kind"); } }; @@ -1043,7 +1043,7 @@ public: return nullptr; } - swift_unreachable("Unhandled FieldDescriptorKind in switch."); + swift_runtime_unreachable("Unhandled FieldDescriptorKind in switch."); } const TypeInfo *visitNominalTypeRef(const NominalTypeRef *N) { @@ -1074,7 +1074,7 @@ public: return TC.getTypeInfo(TC.getThinFunctionTypeRef()); } - swift_unreachable("Unhandled FunctionMetadataConvention in switch."); + swift_runtime_unreachable("Unhandled FunctionMetadataConvention in switch."); } const TypeInfo *visitProtocolTypeRef(const ProtocolTypeRef *P) { @@ -1102,7 +1102,7 @@ public: return TC.getTypeInfo(TC.getAnyMetatypeTypeRef()); } - swift_unreachable("Unhandled MetatypeRepresentation in switch."); + swift_runtime_unreachable("Unhandled MetatypeRepresentation in switch."); } const TypeInfo * @@ -1285,7 +1285,7 @@ const TypeInfo *TypeConverter::getClassInstanceTypeInfo(const TypeRef *TR, return nullptr; } - swift_unreachable("Unhandled FieldDescriptorKind in switch."); + swift_runtime_unreachable("Unhandled FieldDescriptorKind in switch."); } } // namespace reflection diff --git a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp index 4c42f09e994..e202f43dc72 100644 --- a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp +++ b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp @@ -177,7 +177,7 @@ swift_layout_kind_t getTypeInfoKind(const TypeInfo &TI) { } } - swift_unreachable("Unhandled TypeInfoKind in switch"); + swift_runtime_unreachable("Unhandled TypeInfoKind in switch"); } static swift_typeinfo_t convertTypeInfo(const TypeInfo *TI) { diff --git a/stdlib/public/runtime/Casting.cpp b/stdlib/public/runtime/Casting.cpp index 350e203174f..80783f53c14 100644 --- a/stdlib/public/runtime/Casting.cpp +++ b/stdlib/public/runtime/Casting.cpp @@ -1013,7 +1013,7 @@ static bool _dynamicCastToExistential(OpaqueValue *dest, } } - swift_unreachable("Unhandled ExistentialTypeRepresentation in switch."); + swift_runtime_unreachable("Unhandled ExistentialTypeRepresentation in switch."); } /******************************************************************************/ @@ -1276,7 +1276,7 @@ swift::swift_dynamicCastMetatype(const Metadata *sourceType, return origSourceType; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } const Metadata * @@ -1388,7 +1388,7 @@ swift::swift_dynamicCastMetatypeUnconditional(const Metadata *sourceType, return origSourceType; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /******************************************************************************/ @@ -1523,7 +1523,8 @@ static bool _dynamicCastToUnknownClassFromExistential(OpaqueValue *dest, } } - swift_unreachable("Unhandled ExistentialTypeRepresentation in switch."); + swift_runtime_unreachable( + "Unhandled ExistentialTypeRepresentation in switch."); } static void unwrapExistential(OpaqueValue *src, @@ -1994,7 +1995,7 @@ static bool _dynamicCastToFunction(OpaqueValue *dest, return _fail(src, srcType, targetType, flags); } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /******************************************************************************/ diff --git a/stdlib/public/runtime/Metadata.cpp b/stdlib/public/runtime/Metadata.cpp index 817d838b5e6..59c317ef183 100644 --- a/stdlib/public/runtime/Metadata.cpp +++ b/stdlib/public/runtime/Metadata.cpp @@ -2200,7 +2200,7 @@ getExistentialValueWitnesses(ProtocolClassConstraint classConstraint, return getOpaqueExistentialValueWitnesses(numWitnessTables); } - swift_unreachable("Unhandled ProtocolClassConstraint in switch."); + swift_runtime_unreachable("Unhandled ProtocolClassConstraint in switch."); } template<> ExistentialTypeRepresentation @@ -2243,7 +2243,8 @@ ExistentialTypeMetadata::mayTakeValue(const OpaqueValue *container) const { } } - swift_unreachable("Unhandled ExistentialTypeRepresentation in switch."); + swift_runtime_unreachable( + "Unhandled ExistentialTypeRepresentation in switch."); } template<> void @@ -2294,7 +2295,8 @@ ExistentialTypeMetadata::projectValue(const OpaqueValue *container) const { } } - swift_unreachable("Unhandled ExistentialTypeRepresentation in switch."); + swift_runtime_unreachable( + "Unhandled ExistentialTypeRepresentation in switch."); } template<> const Metadata * @@ -2318,7 +2320,8 @@ ExistentialTypeMetadata::getDynamicType(const OpaqueValue *container) const { } } - swift_unreachable("Unhandled ExistentialTypeRepresentation in switch."); + swift_runtime_unreachable( + "Unhandled ExistentialTypeRepresentation in switch."); } template<> const WitnessTable * @@ -2609,7 +2612,7 @@ Metadata::getClassObject() const { return nullptr; } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } #ifndef NDEBUG diff --git a/stdlib/public/runtime/ProtocolConformance.cpp b/stdlib/public/runtime/ProtocolConformance.cpp index cb582117704..70660a53154 100644 --- a/stdlib/public/runtime/ProtocolConformance.cpp +++ b/stdlib/public/runtime/ProtocolConformance.cpp @@ -118,7 +118,7 @@ const { return nullptr; } - swift_unreachable("Unhandled TypeMetadataRecordKind in switch."); + swift_runtime_unreachable("Unhandled TypeMetadataRecordKind in switch."); } template<> @@ -133,7 +133,8 @@ const { return getWitnessTableAccessor()(type); } - swift_unreachable("Unhandled ProtocolConformanceReferenceKind in switch."); + swift_runtime_unreachable( + "Unhandled ProtocolConformanceReferenceKind in switch."); } namespace { diff --git a/stdlib/public/runtime/Reflection.mm b/stdlib/public/runtime/Reflection.mm index 61fff944c87..9b6ce1a416f 100644 --- a/stdlib/public/runtime/Reflection.mm +++ b/stdlib/public/runtime/Reflection.mm @@ -1100,7 +1100,7 @@ getImplementationForType(const Metadata *T, const OpaqueValue *Value) { swift::crash("Swift mirror lookup failure"); } - swift_unreachable("Unhandled MetadataKind in switch."); + swift_runtime_unreachable("Unhandled MetadataKind in switch."); } /// MagicMirror ownership-taking whole-value constructor.