5.10: [interop][SwiftToCxx] Use 'SWIFT_INLINE_PRIVATE_HELPER' for getTypeMetadata helper to avoid emitting a reference to it when 'DEBUG' macro is set #69524
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #69234
Based on #69522, see last commit only for the diff - 5f4e33d
rdar://117089662
SWIFT_INLINE_THUNK
macro used forgetTypeMetadata
helper in the generated header adds LLVMused
attribute to the inline functions whenDEBUG
is set, to have functions be callable from LLDB's expression evaluation.getTypeMetadata
is also emitted for C++ types that are exposed back from Swift to C++, to allow them to be used in Swift generics. However, this can sometimes lead to a linking error because of theused
attribute when Swift doesn't actually emit the C++ type metadata, e.g. when such C++ type is not used in a Swift generic type, but is used directly in an exposed Swift API. This change usesSWIFT_INLINE_PRIVATE_HELPER
instead for thegetTypeMetadata
helpers to avoid force linking with the not existing metadata for a C++ type.used
LLVM attribute.