|
| 1 | +// RUN: %target-build-swift -g %s |
| 2 | + |
| 3 | +// SR-12650: IRGenDebugInfo type reconstruction crash because `@noDerivative` |
| 4 | +// parameters are not mangled. |
| 5 | + |
| 6 | +// FIXME(SR-13021): Disabled due to flakiness on Linux. |
| 7 | +// REQUIRES: SR13021 |
| 8 | + |
| 9 | +import _Differentiation |
| 10 | +func id(_ x: Float, _ y: Float) -> Float { x } |
| 11 | +let transformed: @differentiable (Float, @noDerivative Float) -> Float = id |
| 12 | + |
| 13 | +// Incorrect reconstructed type for $sS3fIedgyyd_D |
| 14 | +// Original type: |
| 15 | +// (sil_function_type type=@differentiable @callee_guaranteed (Float, @noDerivative Float) -> Float |
| 16 | +// (input=struct_type decl=Swift.(file).Float) |
| 17 | +// (input=struct_type decl=Swift.(file).Float) |
| 18 | +// (result=struct_type decl=Swift.(file).Float) |
| 19 | +// (substitution_map generic_signature=<nullptr>) |
| 20 | +// (substitution_map generic_signature=<nullptr>)) |
| 21 | +// Reconstructed type: |
| 22 | +// (sil_function_type type=@differentiable @callee_guaranteed (Float, Float) -> Float |
| 23 | +// (input=struct_type decl=Swift.(file).Float) |
| 24 | +// (input=struct_type decl=Swift.(file).Float) |
| 25 | +// (result=struct_type decl=Swift.(file).Float) |
| 26 | +// (substitution_map generic_signature=<nullptr>) |
| 27 | +// (substitution_map generic_signature=<nullptr>)) |
| 28 | +// Stack dump: |
| 29 | +// ... |
| 30 | +// 1. Swift version 5.3-dev (LLVM 803d1b184d, Swift 477af9f90d) |
| 31 | +// 2. While evaluating request IRGenSourceFileRequest(IR Generation for file "noderiv.swift") |
| 32 | +// 0 swift 0x00000001104c7ae8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40 |
| 33 | +// 1 swift 0x00000001104c6a68 llvm::sys::RunSignalHandlers() + 248 |
| 34 | +// 2 swift 0x00000001104c80dd SignalHandler(int) + 285 |
| 35 | +// 3 libsystem_platform.dylib 0x00007fff718335fd _sigtramp + 29 |
| 36 | +// 4 libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603338611739168 |
| 37 | +// 5 libsystem_c.dylib 0x00007fff71709808 abort + 120 |
| 38 | +// 6 swift 0x0000000110604152 (anonymous namespace)::IRGenDebugInfoImpl::getOrCreateType(swift::irgen::DebugTypeInfo) (.cold.20) + 146 |
| 39 | +// 7 swift 0x000000010c24ab1e (anonymous namespace)::IRGenDebugInfoImpl::getOrCreateType(swift::irgen::DebugTypeInfo) + 3614 |
| 40 | +// 8 swift 0x000000010c245437 swift::irgen::IRGenDebugInfo::emitGlobalVariableDeclaration(llvm::GlobalVariable*, llvm::StringRef, llvm::StringRef, swift::irgen::DebugTypeInfo, bool, bool, llvm::Optional<swift::SILLocation>) + 167 |
0 commit comments