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
Add an assertion that verifies the size of cached debug info types. #62499
Conversation
1a01aac
to
722bd91
Compare
722bd91
to
22f5ade
Compare
@swift-ci test |
22f5ade
to
956f8ab
Compare
@swift-ci test |
@swift-ci test source compatibility |
956f8ab
to
fef2ae3
Compare
@swift-ci test |
@swift-ci test source compatibility |
fef2ae3
to
1136035
Compare
@swift-ci test |
1136035
to
600fc62
Compare
@swift-ci test source compatibility |
@swift-ci test |
600fc62
to
84f12fa
Compare
@swift-ci test |
@swift-ci test source compatibility |
Nice, the only failure is an unrelated linker crash. |
@swift-ci test and merge |
@swift-ci test |
@swift-ci test macos |
@swift-ci test |
1 similar comment
@swift-ci test |
@swift-ci test |
@swift-ci test platform macOS |
@swift-ci test macOS |
1 similar comment
@swift-ci test macOS |
…ypeInfo. Previously type sizes would be inconsistently sourced from either the LLVM type or the FixedTypeInfo, depending on the call site. This was problematic because TypeInfo operates with a resolution of whole bytes, which means that types such as i1 would get a reported as having a size of 8. This patch now asserts that all occurrences of the same type have the same size as the first, cached occurence. To avoid triggering the cached type verification assertion, this patch avoids caching of storage-sized containers. It also removes the unique identifier from forward declarations, which could lead to type confusion during LTO. rdar://102367872
84f12fa
to
0f4429b
Compare
@swift-ci test and merge |
DebugTypeInfo: Prefer the size of the Storage type derived from the TypeInfo.
Previously type sizes would be inconsistently sourced from either the LLVM type
or the FixedTypeInfo, depending on the call site. This was problematic because
TypeInfo operates with a resolution of whole bytes, which means that types such
as i1 would get a reported as having a size of 8. This patch now asserts that
all occurrences of the same type have the same size as the first, cached
occurence.
To avoid triggering the cached type verification assertion, this patch avoids
caching of storage-sized containers. It also removes the unique identifier from
forward declarations, which could lead to type confusion during LTO.
rdar://102367872