You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[AutoDiff] Fix crasher on property getter in library evolution mode.
`SILBuilder::createAllocStack` expects a debug variable when the location is a `VarDecl`. Since we are in pullbacks, there's no debug variables so we pass an empty one.
General support for debug-info-in-pullbacks will be added as part of SR-13535.
Also add negative tests for SR-13866.
Resolves SR-13865.
// SR-13865: AutoDiff crasher on property derivatives in library evolution mode.
5
+
6
+
import _Differentiation
7
+
8
+
publicstructStruct:Differentiable{
9
+
varstored:Float
10
+
11
+
// Test property.
12
+
@differentiable
13
+
publicvarproperty:Float{
14
+
stored
15
+
}
16
+
17
+
@differentiable
18
+
publicvarproperty2:Float{
19
+
stored + stored
20
+
}
21
+
22
+
@differentiable
23
+
publicvarproperty3:Float{
24
+
stored.squareRoot()
25
+
}
26
+
}
27
+
28
+
// Original crasher:
29
+
// Assertion failed: ((!dyn_cast_or_null<VarDecl>(Loc.getAsASTNode<Decl>()) || Var) && "location is a VarDecl, but SILDebugVariable is empty"), function createAllocStack, file .../swift/include/swift/SIL/SILBuilder.h, line 418.
30
+
// Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project and the crash backtrace.
31
+
// Stack dump:
32
+
// 0. Program arguments: swift-frontend -c test2.swift -enable-library-evolution
33
+
// 1. Swift version 5.3-dev (LLVM f681f671e2e9538, Swift 36090faaded56c2)
34
+
// 2. While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for test2.test2)
35
+
// 3. While running pass #157 SILModuleTransform "Differentiation".
36
+
// 4. While processing // differentiability witness for Struct.property.getter
0 commit comments