Skip to content

[interop] Protocol witnesses for C++ conformances are externally visible & linkable #61453

@hyp

Description

@hyp

Describe the bug
If I write a manual conformance for CxxSequence, I get a protocol witness that doesn't have a shared SIL linkage, which leads to this TBD error:

<unknown>:0: error: symbol '$sSo3stdO3__1O046__CxxTemplateInstNSt3__16vectorIjNS_9allocatorG4EEEEV13CreateObjects0B8SequenceA2gHP11endMutating11RawIteratorQzyFTW' (protocol witness for CreateObjects.CxxSequence.endMutating() -> A.RawIterator in conformance __C.std.__1.__CxxTemplateInstNSt3__16vectorIjNS_9allocatorIjEEEE : CreateObjects.CxxSequence in CreateObjects) is in generated IR file, but not in TBD file

Metadata

Metadata

Assignees

Labels

affects ABIFlag: Affects ABIbugA deviation from expected or documented behavior. Also: expected but undesirable behavior.c++ interopFeature: Interoperability with C++

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions