13
13
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/CrashOpt || true) | %FileCheck %s --check-prefix OPTIMIZED
14
14
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/CrashOptNoDebug || true) | %FileCheck %s --check-prefix OPTNODEBUG
15
15
16
+ // UNSUPPORTED: use_os_stdlib
17
+ // UNSUPPORTED: back_deployment_runtime
16
18
// REQUIRES: executable_test
17
19
// REQUIRES: backtracing
18
20
// REQUIRES: OS=macosx
@@ -50,13 +52,13 @@ struct Crash {
50
52
51
53
// CHECK: Thread 0 crashed:
52
54
53
- // CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:39 :15
54
- // CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:33 :3
55
- // CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:29 :3
56
- // CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:25 :3
57
- // CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:21 :3
58
- // CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:45 :5
59
- // CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:42 :1
55
+ // CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:41 :15
56
+ // CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:35 :3
57
+ // CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:31 :3
58
+ // CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:27 :3
59
+ // CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:23 :3
60
+ // CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:47 :5
61
+ // CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:44 :1
60
62
// CHECK-NEXT: 7 [ra] [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in Crash at {{.*}}/Crash.swift
61
63
62
64
// CHECK: Registers:
@@ -69,59 +71,59 @@ struct Crash {
69
71
70
72
// FRIENDLY: Thread 0 crashed:
71
73
72
- // FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:39 :15
74
+ // FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:41 :15
73
75
74
- // FRIENDLY: 37 | print("About to crash")
75
- // FRIENDLY-NEXT: 38 | let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
76
- // FRIENDLY-NEXT: 39 | ptr.pointee = 42
76
+ // FRIENDLY: 39 | print("About to crash")
77
+ // FRIENDLY-NEXT: 40 | let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
78
+ // FRIENDLY-NEXT: 41 | ptr.pointee = 42
77
79
// FRIENDLY-NEXT: | ^
78
- // FRIENDLY-NEXT: 40 | }
79
- // FRIENDLY-NEXT: 41 |
80
+ // FRIENDLY-NEXT: 42 | }
81
+ // FRIENDLY-NEXT: 43 |
80
82
81
- // FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:33 :3
83
+ // FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:35 :3
82
84
83
- // FRIENDLY: 31 |
84
- // FRIENDLY-NEXT: 32 | func level4() {
85
- // FRIENDLY-NEXT: 33 | level5()
85
+ // FRIENDLY: 33 |
86
+ // FRIENDLY-NEXT: 34 | func level4() {
87
+ // FRIENDLY-NEXT: 35 | level5()
86
88
// FRIENDLY-NEXT: | ^
87
- // FRIENDLY-NEXT: 34 | }
88
- // FRIENDLY-NEXT: 35 |
89
+ // FRIENDLY-NEXT: 36 | }
90
+ // FRIENDLY-NEXT: 37 |
89
91
90
- // FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:29 :3
92
+ // FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:31 :3
91
93
92
- // FRIENDLY: 27 |
93
- // FRIENDLY-NEXT: 28 | func level3() {
94
- // FRIENDLY-NEXT: 29 | level4()
94
+ // FRIENDLY: 29 |
95
+ // FRIENDLY-NEXT: 30 | func level3() {
96
+ // FRIENDLY-NEXT: 31 | level4()
95
97
// FRIENDLY-NEXT: | ^
96
- // FRIENDLY-NEXT: 30 | }
97
- // FRIENDLY-NEXT: 31 |
98
+ // FRIENDLY-NEXT: 32 | }
99
+ // FRIENDLY-NEXT: 33 |
98
100
99
- // FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:25 :3
101
+ // FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:27 :3
100
102
101
- // FRIENDLY: 23 |
102
- // FRIENDLY-NEXT: 24 | func level2() {
103
- // FRIENDLY-NEXT: 25 | level3()
103
+ // FRIENDLY: 25 |
104
+ // FRIENDLY-NEXT: 26 | func level2() {
105
+ // FRIENDLY-NEXT: 27 | level3()
104
106
// FRIENDLY-NEXT: | ^
105
- // FRIENDLY-NEXT: 26 | }
106
- // FRIENDLY-NEXT: 27 |
107
+ // FRIENDLY-NEXT: 28 | }
108
+ // FRIENDLY-NEXT: 29 |
107
109
108
- // FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:21 :3
110
+ // FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:23 :3
109
111
110
- // FRIENDLY: 19 |
111
- // FRIENDLY-NEXT: 20 | func level1() {
112
- // FRIENDLY-NEXT: 21 | level2()
112
+ // FRIENDLY: 21 |
113
+ // FRIENDLY-NEXT: 22 | func level1() {
114
+ // FRIENDLY-NEXT: 23 | level2()
113
115
// FRIENDLY-NEXT: | ^
114
- // FRIENDLY-NEXT: 22 | }
115
- // FRIENDLY-NEXT: 23 |
116
+ // FRIENDLY-NEXT: 24 | }
117
+ // FRIENDLY-NEXT: 25 |
116
118
117
- // FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:45 :5
119
+ // FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:47 :5
118
120
119
- // FRIENDLY: 43 | struct Crash {
120
- // FRIENDLY-NEXT: 44 | static func main() {
121
- // FRIENDLY-NEXT: 45 | level1()
121
+ // FRIENDLY: 45 | struct Crash {
122
+ // FRIENDLY-NEXT: 46 | static func main() {
123
+ // FRIENDLY-NEXT: 47 | level1()
122
124
// FRIENDLY-NEXT: | ^
123
- // FRIENDLY-NEXT: 46 | }
124
- // FRIENDLY-NEXT: 47 | }
125
+ // FRIENDLY-NEXT: 48 | }
126
+ // FRIENDLY-NEXT: 49 | }
125
127
126
128
// NODEBUG: *** Program crashed: Bad pointer dereference at 0x{{0*}}4 ***
127
129
@@ -146,13 +148,13 @@ struct Crash {
146
148
147
149
// OPTIMIZED: Thread 0 crashed:
148
150
149
- // OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:39 :15
150
- // OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:33 :3
151
- // OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:29 :3
152
- // OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:25 :3
153
- // OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:21 :3
154
- // OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:45 :5
155
- // OPTIMIZED-NEXT: 6 [inlined] [system] 0x{{[0-9a-f]+}} static Crash.$main() in CrashOpt at {{.*}}/Crash.swift:42 :1
151
+ // OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:41 :15
152
+ // OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:35 :3
153
+ // OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:31 :3
154
+ // OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:27 :3
155
+ // OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:23 :3
156
+ // OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:47 :5
157
+ // OPTIMIZED-NEXT: 6 [inlined] [system] 0x{{[0-9a-f]+}} static Crash.$main() in CrashOpt at {{.*}}/Crash.swift:44 :1
156
158
// OPTIMIZED-NEXT: 7 [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashOpt at {{.*}}/Crash.swift
157
159
158
160
// OPTIMIZED: Registers:
0 commit comments