Skip to content
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

IRGen: compute locality for type declarations #79820

Merged
merged 1 commit into from
Mar 8, 2025
Merged

Conversation

compnerd
Copy link
Member

@compnerd compnerd commented Mar 6, 2025

We previously did not properly compute the link info for type declarations. This becomes a problem for metadata accessors which are canonically remote (e.g. the type metadata accessor for NSError). This fixes the incorrect DLLStorage that was being attributed to these functions.

@compnerd compnerd requested a review from rjmccall as a code owner March 6, 2025 18:59
@compnerd
Copy link
Member Author

compnerd commented Mar 6, 2025

@swift-ci please test Windows platform

@compnerd
Copy link
Member Author

compnerd commented Mar 7, 2025

Assertion failed: isActuallyCanonicalOrNull() && "Forming a CanType out of a non-canonical type!", file C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\swift\include\swift/AST/Type.h, line 426
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.	Program arguments: C:\\Users\\swift-ci\\jenkins\\workspace\\swift-PR-windows\\build\\5\\bin\\swiftc.exe -frontend -c C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/Differentiable.swift C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/DifferentialOperators.swift C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/DifferentiationUtilities.swift C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/AnyDifferentiable.swift C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/ArrayDifferentiation.swift C:/Users/swift-ci/jenkins/workspace/swift-PR-windows/swift/stdlib/public/Differentiation/OptionalDifferentiation.swift T:/x86_64-unknown-windows-msvc/Runtime/stdlib/public/Differentiation/8/FloatingPointDifferentiation.swift T:/x86_64-unknown-windows-msvc/Runtime/stdlib/public/Differentiation/8/TgmathDerivatives.swift T:/x86_64-unknown-windows-msvc/Runtime/stdlib/public/Differentiation/8/SIMDDifferentiation.swift -supplementary-output-file-map T:\\tmp\\supplementaryOutputs-9f738f -disable-objc-attr-requires-foundation-module -target x86_64-unknown-windows-msvc -disable-objc-interop -I T:/x86_64-unknown-windows-msvc/Runtime/./lib/swift/windows -vfsoverlay T:/x86_64-unknown-windows-msvc/Runtime/stdlib/windows-vfs-overlay.yaml -color-diagnostics -enable-experimental-feature NoncopyableGenerics2 -enable-experimental-feature SuppressedAssociatedTypes -enable-experimental-feature SE427NoInferenceOnExtension -enable-experimental-feature NonescapableTypes -enable-experimental-feature LifetimeDependence -enable-upcoming-feature MemberImportVisibility -warn-implicit-overrides -enable-library-evolution -module-cache-path T:/x86_64-unknown-windows-msvc/Runtime/./module-cache -module-link-name swift_Differentiation -parse-stdlib -resource-dir T:/x86_64-unknown-windows-msvc/Runtime/./lib/swift -swift-version 5 -O -library-level api -D SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY -D SWIFT_ENABLE_EXPERIMENTAL_DISTRIBUTED -D SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING -D SWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING -D SWIFT_ENABLE_EXPERIMENTAL_OBSERVATION -D SWIFT_ENABLE_SYNCHRONIZATION -D SWIFT_ENABLE_VOLATILE -D SWIFT_RUNTIME_OS_VERSIONING -D SWIFT_STDLIB_ENABLE_UNICODE_DATA -D SWIFT_STDLIB_ENABLE_VECTOR_TYPES -D SWIFT_STDLIB_HAS_COMMANDLINE -D SWIFT_STDLIB_HAS_STDIN -D SWIFT_STDLIB_HAS_ENVIRON -D SWIFT_CONCURRENCY_USES_DISPATCH -D SWIFT_STDLIB_OVERRIDABLE_RETAIN_RELEASE -D SWIFT_THREADING_WIN32 -D SWIFT_ENABLE_REFLECTION -D _WINDLL -require-explicit-availability=ignore -enforce-exclusivity=unchecked -empty-abi-descriptor -disable-autolinking-runtime-compatibility-concurrency -disable-objc-interop -enable-lexical-lifetimes=false -enable-ossa-modules -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -strict-implicit-module-context -define-availability "SwiftStdlib 9999:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999" -define-availability "SwiftStdlib 5.0:macOS 10.14.4, iOS 12.2, watchOS 5.2, tvOS 12.2" -define-availability "SwiftStdlib 5.1:macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0" -define-availability "SwiftStdlib 5.2:macOS 10.15.4, iOS 13.4, watchOS 6.2, tvOS 13.4" -define-availability "SwiftStdlib 5.3:macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0" -define-availability "SwiftStdlib 5.4:macOS 11.3, iOS 14.5, watchOS 7.4, tvOS 14.5" -define-availability "SwiftStdlib 5.5:macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0" -define-availability "SwiftStdlib 5.6:macOS 12.3, iOS 15.4, watchOS 8.5, tvOS 15.4" -define-availability "SwiftStdlib 5.7:macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0" -define-availability "SwiftStdlib 5.8:macOS 13.3, iOS 16.4, watchOS 9.4, tvOS 16.4" -define-availability "SwiftStdlib 5.9:macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0" -define-availability "SwiftStdlib 5.10:macOS 14.4, iOS 17.4, watchOS 10.4, tvOS 17.4, visionOS 1.1" -define-availability "SwiftStdlib 6.0:macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0" -define-availability "SwiftStdlib 6.1:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, visionOS 9999" -define-availability "SwiftStdlib 6.2:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, visionOS 9999" -target-min-inlining-version min -in-process-plugin-server-path C:\\Users\\swift-ci\\jenkins\\workspace\\swift-PR-windows\\build\\5\\bin\\SwiftInProcPluginServer.dll -plugin-path C:\\Users\\swift-ci\\jenkins\\workspace\\swift-PR-windows\\build\\5\\bin -Xcc -DSWIFT_STDLIB_HAS_ENVIRON -Xcc -Xclang -Xcc -ivfsoverlay -Xcc -Xclang -Xcc T:/x86_64-unknown-windows-msvc/Runtime/stdlib/public/Differentiation/windows-sdk-vfs-overlay.yaml -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules -autolink-library oldnames -autolink-library msvcrt -Xcc -D_MT -Xcc -D_DLL -parse-as-library -module-name _Differentiation -o T:/x86_64-unknown-windows-msvc/Runtime/stdlib/public/Differentiation//WINDOWS/x86_64/_Differentiation.obj -runtime-compatibility-version none -disable-autolinking-runtime-compatibility-dynamic-replacements
1.	Swift version 6.2-dev (LLVM 07aa074846dae18, Swift 9588b04669f4bdd)
2.	Compiling with effective version 5.10
3.	While evaluating request IRGenRequest(IR Generation for module _Differentiation)
4.	While emitting differentiability witness for (original=@$s16_Differentiation17AnyDifferentiableVyACxcAA0C0RzlufC kind=reverse config=(parameters={1, 0} results={1} where=<T where T : Differentiable>))
Exception Code: 0x80000003
 #0 0x00007ff670366db5 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x6e16db5)
 #1 0x00007ff86edad88d (C:\Windows\System32\base.dll+0x6d88d)
 #2 0x00007ff86edae761 (C:\Windows\System32\ucrtbase.dll+0x6e761)
 #3 0x00007ff86edb00c1 (C:\Windows\System32\ucrtbase.dll+0x700c1)
 #4 0x00007ff86edb03f1 (C:\Windows\System32\ucrtbase.dll+0x703f1)
 #5 0x00007ff669f6d856 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0xa1d856)
 #6 0x00007ff669f6fd88 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0xa1fd88)
 #7 0x00007ff669f6ec92 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0xa1ec92)
 #8 0x00007ff66a19a4f4 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0xc4a4f4)
 #9 0x00007ff669f67101 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0xa17101)
#10 0x00007ff669ee6f91 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x996f91)
#11 0x00007ff669ef0306 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x9a0306)
#12 0x00007ff669edec4d (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x98ec4d)
#13 0x00007ff669eea4fa (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x99a4fa)
#14 0x00007ff669b57ffe (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x607ffe)
#15 0x00007ff669b58513 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x608513)
#16 0x00007ff669b57444 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x607444)
#17 0x00007ff669b578fb (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x6078fb)
#18 0x00007ff669b597d4 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x6097d4)
#19 0x00007ff6699a8570 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x458570)
#20 0x00007ff6699a8107 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x458107)
#21 0x00007ff6703c5e40 (C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\build\5\bin\swiftc.exe+0x6e75e40)
#22 0x00007ff871107ac4 (C:\Windows\System32\KERNEL32.DLL+0x17ac4)
#23 0x00007ff87292a8c1 (C:\Windows\SYSTEM32\ntdll.dll+0x5a8c1)
<unknown>:0: error: compile command failed due to signal -2147483645 (use -v to see invocation)

@compnerd
Copy link
Member Author

compnerd commented Mar 7, 2025

@swift-ci please test Linux platform

@compnerd compnerd marked this pull request as draft March 7, 2025 05:32
We previously did not properly compute the link info for type metadata
accessor. This becomes a problem for metadata accessors which are
canonically remote (e.g. the type metadata accessor for `NSError`). This
fixes the incorrect DLLStorage that was being attributed to these
functions.
@compnerd compnerd marked this pull request as ready for review March 8, 2025 01:52
@compnerd
Copy link
Member Author

compnerd commented Mar 8, 2025

@swift-ci please test

@compnerd compnerd merged commit 50531f2 into swiftlang:main Mar 8, 2025
5 checks passed
@compnerd compnerd deleted the info branch March 8, 2025 16:03
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