1
1
// RUN: %empty-directory(%t)
2
- // RUN: %target-build-swift %s -parse-as-library -Onone -g -o %t/Crash
3
- // RUN: %target-build-swift %s -parse-as-library -Onone -o %t/CrashNoDebug
4
- // RUN: %target-build-swift %s -parse-as-library -O -g -o %t/CrashOpt
5
- // RUN: %target-build-swift %s -parse-as-library -O -o %t/CrashOptNoDebug
2
+ // RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -Onone -g -o %t/Crash
3
+ // RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -Onone -o %t/CrashNoDebug
4
+ // RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -O -g -o %t/CrashOpt
5
+ // RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -O -o %t/CrashOptNoDebug
6
6
// RUN: %target-codesign %t/Crash
7
7
// RUN: %target-codesign %t/CrashNoDebug
8
8
// RUN: %target-codesign %t/CrashOpt
20
20
// REQUIRES: backtracing
21
21
// REQUIRES: OS=macosx || OS=linux-gnu
22
22
23
- func level1( ) {
24
- level2 ( )
25
- }
26
-
27
- func level2( ) {
28
- level3 ( )
29
- }
30
-
31
- func level3( ) {
32
- level4 ( )
33
- }
34
-
35
- func level4( ) {
36
- level5 ( )
37
- }
38
-
39
- func level5( ) {
40
- print ( " About to crash " )
41
- let ptr = UnsafeMutablePointer < Int > ( bitPattern: 4 ) !
42
- ptr. pointee = 42
43
- }
44
-
45
- @main
46
- struct Crash {
47
- static func main( ) {
48
- level1 ( )
49
- }
50
- }
51
23
52
24
// CHECK: *** Program crashed: Bad pointer dereference at 0x{{0+}}4 ***
53
25
54
26
// CHECK: Thread 0 {{(".*" )?}}crashed:
55
27
56
- // CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:42 :15
57
- // CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:36 :3
58
- // CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:32 :3
59
- // CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:28 :3
60
- // CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:24 :3
61
- // CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:48 :5
28
+ // CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:19 :15
29
+ // CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:13 :3
30
+ // CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:9 :3
31
+ // CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:5 :3
32
+ // CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:1 :3
33
+ // CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:25 :5
62
34
// CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/<compiler-generated>
63
35
// CHECK-NEXT: 7 [ra] [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in Crash at {{.*}}/Crash.swift
64
36
@@ -72,7 +44,7 @@ struct Crash {
72
44
73
45
// FRIENDLY: Thread 0 {{(".*" )?}}crashed:
74
46
75
- // FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:42 :15
47
+ // FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:19 :15
76
48
77
49
// FRIENDLY: 40| print("About to crash")
78
50
// FRIENDLY-NEXT: 41| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
@@ -81,7 +53,7 @@ struct Crash {
81
53
// FRIENDLY-NEXT: 43| }
82
54
// FRIENDLY-NEXT: 44|
83
55
84
- // FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:36 :3
56
+ // FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:13 :3
85
57
86
58
// FRIENDLY: 34|
87
59
// FRIENDLY-NEXT: 35| func level4() {
@@ -90,7 +62,7 @@ struct Crash {
90
62
// FRIENDLY-NEXT: 37| }
91
63
// FRIENDLY-NEXT: 38|
92
64
93
- // FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:32 :3
65
+ // FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:9 :3
94
66
95
67
// FRIENDLY: 30|
96
68
// FRIENDLY-NEXT: 31| func level3() {
@@ -99,7 +71,7 @@ struct Crash {
99
71
// FRIENDLY-NEXT: 33| }
100
72
// FRIENDLY-NEXT: 34|
101
73
102
- // FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:28 :3
74
+ // FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:5 :3
103
75
104
76
// FRIENDLY: 26|
105
77
// FRIENDLY-NEXT: 27| func level2() {
@@ -108,7 +80,7 @@ struct Crash {
108
80
// FRIENDLY-NEXT: 29| }
109
81
// FRIENDLY-NEXT: 30|
110
82
111
- // FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:24 :3
83
+ // FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:1 :3
112
84
113
85
// FRIENDLY: 22|
114
86
// FRIENDLY-NEXT: 23| func level1() {
@@ -117,7 +89,7 @@ struct Crash {
117
89
// FRIENDLY-NEXT: 25| }
118
90
// FRIENDLY-NEXT: 26|
119
91
120
- // FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:48 :5
92
+ // FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:25 :5
121
93
122
94
// FRIENDLY: 46| struct Crash {
123
95
// FRIENDLY-NEXT: 47| static func main() {
@@ -149,12 +121,12 @@ struct Crash {
149
121
150
122
// OPTIMIZED: Thread 0 {{(".*" )?}}crashed:
151
123
152
- // OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:42 :15
153
- // OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:36 :3
154
- // OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:32 :3
155
- // OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:28 :3
156
- // OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:24 :3
157
- // OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:48 :5
124
+ // OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:19 :15
125
+ // OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:13 :3
126
+ // OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:9 :3
127
+ // OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:5 :3
128
+ // OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:1 :3
129
+ // OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:25 :5
158
130
// OPTIMIZED: {{6|7}} [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashOpt at {{.*}}
159
131
160
132
// OPTIMIZED: Registers:
0 commit comments