|
7 | 7 | // works without burdening opt-remark-generator-yaml.swift with having to update all
|
8 | 8 | // of the yaml test cases everytime new code is added.
|
9 | 9 |
|
| 10 | +public class Klass {} |
| 11 | + |
| 12 | +public var global = Klass() |
| 13 | + |
10 | 14 | // CHECK: --- !Missed
|
11 | 15 | // CHECK-NEXT: Pass: sil-opt-remark-gen
|
12 | 16 | // CHECK-NEXT: Name: sil.memory
|
13 | 17 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
14 |
| -// CHECK-NEXT: Line: 63, Column: 5 } |
| 18 | +// CHECK-NEXT: Line: [[# @LINE + 12]], Column: 5 } |
15 | 19 | // CHECK-NEXT: Function: 'getGlobal()'
|
16 | 20 | // CHECK-NEXT: Args:
|
17 |
| -// CHECK-NEXT: - String: retain |
| 21 | +// CHECK-NEXT: - String: 'retain of type ''' |
| 22 | +// CHECK-NEXT: - ValueType: Klass |
| 23 | +// CHECK-NEXT: - String: '''' |
18 | 24 | // CHECK-NEXT: - InferredValue: 'of ''global'''
|
19 | 25 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
20 |
| -// CHECK-NEXT: Line: 59, Column: 12 } |
| 26 | +// CHECK-NEXT: Line: [[# @LINE - 14]], Column: 12 } |
21 | 27 | // CHECK-NEXT: ...
|
| 28 | +@inline(never) |
| 29 | +public func getGlobal() -> Klass { |
| 30 | + return global // expected-remark @:5 {{retain of type 'Klass'}} |
| 31 | + // expected-note @-19:12 {{of 'global'}} |
| 32 | +} |
| 33 | + |
22 | 34 | // CHECK-NEXT: --- !Missed
|
23 | 35 | // CHECK-NEXT: Pass: sil-opt-remark-gen
|
24 | 36 | // CHECK-NEXT: Name: sil.memory
|
25 | 37 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
26 |
| -// CHECK-NEXT: Line: 71, Column: 5 } |
| 38 | +// CHECK-NEXT: Line: [[# @LINE + 40]], Column: 5 } |
27 | 39 | // CHECK-NEXT: Function: 'useGlobal()'
|
28 | 40 | // CHECK-NEXT: Args:
|
29 |
| -// CHECK-NEXT: - String: retain |
| 41 | +// CHECK-NEXT: - String: 'retain of type ''' |
| 42 | +// CHECK-NEXT: - ValueType: Klass |
| 43 | +// CHECK-NEXT: - String: '''' |
30 | 44 | // CHECK-NEXT: - InferredValue: 'of ''x'''
|
31 | 45 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
32 |
| -// CHECK-NEXT: Line: 68, Column: 9 } |
| 46 | +// CHECK-NEXT: Line: [[# @LINE + 29]], Column: 9 } |
33 | 47 | // CHECK-NEXT: ...
|
34 | 48 | // CHECK-NEXT: --- !Missed
|
35 | 49 | // CHECK-NEXT: Pass: sil-opt-remark-gen
|
36 | 50 | // CHECK-NEXT: Name: sil.memory
|
37 | 51 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
38 |
| -// CHECK-NEXT: Line: 71, Column: 12 } |
| 52 | +// CHECK-NEXT: Line: [[# @LINE + 26]], Column: 12 } |
39 | 53 | // CHECK-NEXT: Function: 'useGlobal()'
|
40 | 54 | // CHECK-NEXT: Args:
|
41 |
| -// CHECK-NEXT: - String: release |
42 |
| - |
| 55 | +// CHECK-NEXT: - String: 'release of type ''' |
| 56 | +// CHECK-NEXT: - ValueType: {{'Array<Any>'|__ContiguousArrayStorageBase}} |
| 57 | +// CHECK-NEXT: - String: '''' |
43 | 58 | // CHECK-NEXT: ...
|
44 | 59 | // CHECK-NEXT: --- !Missed
|
45 | 60 | // CHECK-NEXT: Pass: sil-opt-remark-gen
|
46 | 61 | // CHECK-NEXT: Name: sil.memory
|
47 | 62 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
48 |
| -// CHECK-NEXT: Line: 71, Column: 12 } |
| 63 | +// CHECK-NEXT: Line: [[# @LINE + 15]], Column: 12 } |
49 | 64 | // CHECK-NEXT: Function: 'useGlobal()'
|
50 | 65 | // CHECK-NEXT: Args:
|
51 |
| -// CHECK-NEXT: - String: release |
| 66 | +// CHECK-NEXT: - String: 'release of type ''' |
| 67 | +// CHECK-NEXT: - ValueType: Klass |
| 68 | +// CHECK-NEXT: - String: '''' |
52 | 69 | // CHECK-NEXT: - InferredValue: 'of ''x'''
|
53 | 70 | // CHECK-NEXT: DebugLoc: { File: '{{.*}}opt-remark-generator-yaml.swift',
|
54 |
| -// CHECK-NEXT: Line: 68, Column: 9 } |
| 71 | +// CHECK-NEXT: Line: [[# @LINE + 4]], Column: 9 } |
55 | 72 | // CHECK-NEXT: ...
|
56 | 73 |
|
57 |
| -public class Klass {} |
58 |
| - |
59 |
| -public var global = Klass() |
60 |
| - |
61 |
| -@inline(never) |
62 |
| -public func getGlobal() -> Klass { |
63 |
| - return global // expected-remark @:5 {{retain}} |
64 |
| - // expected-note @-5:12 {{of 'global'}} |
65 |
| -} |
66 |
| - |
67 | 74 | public func useGlobal() {
|
68 | 75 | let x = getGlobal()
|
69 | 76 | // Make sure that the retain msg is at the beginning of the print and the
|
70 | 77 | // releases are the end of the print.
|
71 |
| - print(x) // expected-remark @:5 {{retain}} |
| 78 | + print(x) // expected-remark @:5 {{retain of type 'Klass'}} |
72 | 79 | // expected-note @-4:9 {{of 'x'}}
|
73 |
| - // expected-remark @-2:12 {{release}} |
74 |
| - // expected-remark @-3:12 {{release}} |
75 |
| - // expected-note @-7:9 {{of 'x'}} |
| 80 | + // We test the type emission above since FileCheck can handle regex. |
| 81 | + // expected-remark @-3:12 {{release of type}} |
| 82 | + // expected-remark @-4:12 {{release of type 'Klass'}} |
| 83 | + // expected-note @-8:9 {{of 'x'}} |
76 | 84 | }
|
0 commit comments