-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Open
Labels
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.A deviation from expected or documented behavior. Also: expected but undesirable behavior.c++ interopFeature: Interoperability with C++Feature: Interoperability with C++crashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of software
Description
Description
Compiling the attached file part of the Turf target crashes the swift frontend. I extracted it from https://github.com/mapbox/turf-swift
I put up the reduced project here: https://github.com/datwelk/turf-swift/tree/feature/swift-crash-case
Compiling the target as follows:
swift build --configuration=release --target Turf -v \
-Xswiftc -cxx-interoperability-mode=default \
-Xswiftc -emit-clang-header-path -Xswiftc /tmp/Turf-Swift.h \
-v
Reproduction
import Foundation
public enum JSONValue: Hashable, Sendable {
case array(_ values: JSONArray)
case object(_ properties: JSONObject)
public init(_ values: JSONArray) {
self = .array(values)
}
public init(_ properties: JSONObject) {
self = .object(properties)
}
}
extension JSONValue {
public var array: JSONArray? {
if case let .array(value) = self {
return value
}
return nil
}
public var object: JSONObject? {
if case let .object(value) = self {
return value
}
return nil
}
}
extension JSONValue: RawRepresentable {
public typealias RawValue = Any
public init?(rawValue: Any) {
if let rawArray = rawValue as? JSONArray.TurfRawValue,
let array = JSONArray(turfRawValue: rawArray) {
self = .array(array)
} else if let rawObject = rawValue as? JSONObject.TurfRawValue,
let object = JSONObject(turfRawValue: rawObject) {
self = .object(object)
} else {
return nil
}
}
public var rawValue: Any {
switch self {
case let .object(value):
return value.turfRawValue
case let .array(value):
return value.turfRawValue
}
}
}
public typealias JSONArray = [JSONValue?]
extension JSONArray {
public typealias TurfRawValue = [Any?]
public init?(turfRawValue values: TurfRawValue) {
self = values.map(JSONValue.init(rawValue:))
}
public var turfRawValue: TurfRawValue {
return map { $0?.rawValue }
}
}
public typealias JSONObject = [String: JSONValue?]
extension JSONObject {
public typealias TurfRawValue = [String: Any?]
public init?(turfRawValue: TurfRawValue) {
self = turfRawValue.mapValues { $0.flatMap(JSONValue.init(rawValue:)) }
}
public var turfRawValue: TurfRawValue {
return mapValues { $0?.rawValue }
}
}
extension JSONValue: ExpressibleByArrayLiteral {
public typealias ArrayLiteralElement = JSONValue?
public init(arrayLiteral elements: ArrayLiteralElement...) {
self = .init(elements)
}
}
extension JSONValue: ExpressibleByDictionaryLiteral {
public typealias Key = String
public typealias Value = JSONValue?
public init(dictionaryLiteral elements: (Key, Value)...) {
self = .init(.init(uniqueKeysWithValues: elements))
}
}
extension JSONValue: Codable {
public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
if let object = try? container.decode(JSONObject.self) {
self = .object(object)
} else if let array = try? container.decode(JSONArray.self) {
self = .array(array)
} else {
throw DecodingError.typeMismatch(JSONValue.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Unable to decode as a JSONValue."))
}
}
public func encode(to encoder: Encoder) throws {
var container = encoder.singleValueContainer()
switch self {
case let .object(value):
try container.encode(value)
case let .array(value):
try container.encode(value)
}
}
}Stack dump
0 swift-frontend 0x10611e774 swift::GenericEnvironment::getOrCreateArchetypeFromInterfaceType(swift::Type) + 4
1 swift-frontend 0x10611f0e0 swift::TypeTransform<(anonymous namespace)::MapTypeIntoContext>::doIt(swift::Type, swift::TypePosition) + 424
2 swift-frontend 0x106121e80 swift::TypeTransform<(anonymous namespace)::MapTypeIntoContext>::doIt(swift::Type, swift::TypePosition)::'lambda'(swift::Type, swift::TypePosition)::operator()(swift::Type, swift::TypePosition) const + 36
3 swift-frontend 0x10611ff90 swift::TypeTransform<(anonymous namespace)::MapTypeIntoContext>::doIt(swift::Type, swift::TypePosition) + 4184
4 swift-frontend 0x1060b10bc swift::DeclContext::getDeclaredTypeInContext() const + 320
5 swift-frontend 0x104c97014 swift::IRABIDetailsProvider::getTypeSizeAlignment(swift::NominalTypeDecl const*) + 36
6 swift-frontend 0x1047d67ac std::__1::__function::__func<swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*)::$_0, std::__1::allocator<swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*)::$_0>, bool (swift::NominalTypeDecl const*)>::operator()(swift::NominalTypeDecl const*&&) + 76
7 swift-frontend 0x1062698fc swift::cxx_translation::getDeclRepresentation(swift::ValueDecl const*, std::__1::optional<std::__1::function<bool (swift::NominalTypeDecl const*)>>) + 1716
8 swift-frontend 0x1047d2bbc swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 576
9 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
10 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
11 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
12 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
13 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
14 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
15 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
16 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
17 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
18 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
19 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
20 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
21 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
22 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
23 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
24 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
25 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
26 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
27 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
28 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
29 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
30 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
31 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
32 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
33 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
34 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
35 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
36 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
37 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
38 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
39 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
40 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
41 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
42 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
43 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
44 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
45 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
46 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
47 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
48 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
49 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
50 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
51 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
52 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
53 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
54 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
55 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
56 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
57 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
58 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
59 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
60 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
61 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
62 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
63 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
64 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
65 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
66 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
67 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
68 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
69 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
70 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
71 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
72 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
73 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
74 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
75 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
76 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
77 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
78 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
79 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
80 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
81 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
82 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
83 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
84 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
85 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
86 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
87 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
88 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
89 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
90 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
91 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
92 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
93 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
94 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
95 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
96 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
97 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
98 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
99 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
100 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
101 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
102 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
103 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
104 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
105 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
106 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
107 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
108 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
109 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
110 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
111 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
112 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
113 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
114 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
115 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
116 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
117 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
118 swift-frontend 0x104810520 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>)::'lambda1'()>(long) + 228
119 swift-frontend 0x10480f804 (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 452
120 swift-frontend 0x10480b654 swift::DeclAndTypeClangFunctionPrinter::getTypeRepresentation(swift::PrimitiveTypeMapping&, swift::SwiftToClangInteropContext&, swift::DeclAndTypePrinter&, swift::ModuleDecl const*, swift::Type) + 448
121 swift-frontend 0x1047d2ec8 swift::DeclAndTypePrinter::shouldInclude(swift::ValueDecl const*) + 1356
122 swift-frontend 0x10480f69c (anonymous namespace)::CFunctionSignatureTypePrinter::visitValueType(swift::TypeBase*, swift::NominalTypeDecl const*, std::__1::optional<swift::OptionalTypeKind>, bool, llvm::ArrayRef<swift::Type>) + 92
123 swift-frontend 0x10480e8b4 <deduplicated_symbol> + 104
124 swift-frontend 0x1048102d4 (anonymous namespace)::CFunctionSignatureTypePrinter::visitGenericArgs(llvm::ArrayRef<swift::Type>) + 216
Expected behavior
No crash, the c++ compat header would be output.
Environment
swift-driver version: 1.127.14.1 Apple Swift version 6.2 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
Target: arm64-apple-macosx15.0
Additional information
I had to omit frames from the stack trace due to max input size of the text field on Github. Without cxx-compatibility-mode it compiles just fine, no crash occurs.
Metadata
Metadata
Assignees
Labels
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.A deviation from expected or documented behavior. Also: expected but undesirable behavior.c++ interopFeature: Interoperability with C++Feature: Interoperability with C++crashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of software