Skip to content

[lldb] Emit specification and spare_bits_mask in debug info, consume them in lldb #8243

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 21, 2024

Conversation

augusto2112
Copy link

No description provided.

The spare bits mask is a mask of the unused bits that a type may have.
Swift uses these on enums to pack extra data when wrapping these enums
in other types. Emit this field in LLVM-IR and DWARF.
Add a specification_of attribute to LLVM DebugInfo, which is analogous
to DWARF's DW_AT_specification. According to the DWARF spec:
"A debugging information entry that represents a declaration that
completes another (earlier) non-defining declaration may have a
DW_AT_specification attribute whose value is a reference to the
debugging information entry representing the non-defining declaration."

This patch allows types to be specifications of other types. For
example, a templated type where the template parameters are substituted
in could be a specification of the non-substituted template type.
@augusto2112
Copy link
Author

swiftlang/swift#71769

@swift-ci test

1 similar comment
@augusto2112
Copy link
Author

swiftlang/swift#71769

@swift-ci test

@augusto2112
Copy link
Author

swiftlang/swift#71769

@swift-ci test Windows

@augusto2112 augusto2112 merged commit 3f5ee9c into swiftlang:stable/20230725 Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant