| ... | @@ -2,18 +2,52 @@ const std = @import("std"); | ... | @@ -2,18 +2,52 @@ const std = @import("std"); |
| 2 | const os = std.os; | 2 | const os = std.os; |
| 3 | const tests = @import("tests.zig"); | 3 | const tests = @import("tests.zig"); |
| 4 | | 4 | |
| 5 | // zig fmt: off | | |
| 6 | pub fn addCases(cases: *tests.StackTracesContext) void { | 5 | pub fn addCases(cases: *tests.StackTracesContext) void { |
| 7 | const source_return = | 6 | cases.addCase(.{ |
| 8 | \\const std = @import("std"); | 7 | .name = "return", |
| 9 | \\ | 8 | .source = |
| 10 | \\pub fn main() !void { | 9 | \\pub fn main() !void { |
| 11 | \\ return error.TheSkyIsFalling; | 10 | \\ return error.TheSkyIsFalling; |
| 12 | \\} | 11 | \\} |
| 13 | ; | 12 | , |
| 14 | const source_try_return = | 13 | .Debug = .{ |
| 15 | \\const std = @import("std"); | 14 | .expect = |
| 16 | \\ | 15 | \\error: TheSkyIsFalling |
| | 16 | \\source.zig:2:5: [address] in main (test) |
| | 17 | \\ return error.TheSkyIsFalling; |
| | 18 | \\ ^ |
| | 19 | \\ |
| | 20 | , |
| | 21 | }, |
| | 22 | .ReleaseSafe = .{ |
| | 23 | .exclude_os = .{ |
| | 24 | .windows, // segfault |
| | 25 | }, |
| | 26 | .expect = |
| | 27 | \\error: TheSkyIsFalling |
| | 28 | \\source.zig:2:5: [address] in [function] |
| | 29 | \\ return error.TheSkyIsFalling; |
| | 30 | \\ ^ |
| | 31 | \\ |
| | 32 | , |
| | 33 | }, |
| | 34 | .ReleaseFast = .{ |
| | 35 | .expect = |
| | 36 | \\error: TheSkyIsFalling |
| | 37 | \\ |
| | 38 | , |
| | 39 | }, |
| | 40 | .ReleaseSmall = .{ |
| | 41 | .expect = |
| | 42 | \\error: TheSkyIsFalling |
| | 43 | \\ |
| | 44 | , |
| | 45 | }, |
| | 46 | }); |
| | 47 | |
| | 48 | cases.addCase(.{ |
| | 49 | .name = "try return", |
| | 50 | .source = |
| 17 | \\fn foo() !void { | 51 | \\fn foo() !void { |
| 18 | \\ return error.TheSkyIsFalling; | 52 | \\ return error.TheSkyIsFalling; |
| 19 | \\} | 53 | \\} |
| ... | @@ -21,10 +55,51 @@ pub fn addCases(cases: *tests.StackTracesContext) void { | ... | @@ -21,10 +55,51 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 21 | \\pub fn main() !void { | 55 | \\pub fn main() !void { |
| 22 | \\ try foo(); | 56 | \\ try foo(); |
| 23 | \\} | 57 | \\} |
| 24 | ; | 58 | , |
| 25 | const source_try_try_return_return = | 59 | .Debug = .{ |
| 26 | \\const std = @import("std"); | 60 | .expect = |
| 27 | \\ | 61 | \\error: TheSkyIsFalling |
| | 62 | \\source.zig:2:5: [address] in foo (test) |
| | 63 | \\ return error.TheSkyIsFalling; |
| | 64 | \\ ^ |
| | 65 | \\source.zig:6:5: [address] in main (test) |
| | 66 | \\ try foo(); |
| | 67 | \\ ^ |
| | 68 | \\ |
| | 69 | , |
| | 70 | }, |
| | 71 | .ReleaseSafe = .{ |
| | 72 | .exclude_os = .{ |
| | 73 | .windows, // segfault |
| | 74 | }, |
| | 75 | .expect = |
| | 76 | \\error: TheSkyIsFalling |
| | 77 | \\source.zig:2:5: [address] in [function] |
| | 78 | \\ return error.TheSkyIsFalling; |
| | 79 | \\ ^ |
| | 80 | \\source.zig:6:5: [address] in [function] |
| | 81 | \\ try foo(); |
| | 82 | \\ ^ |
| | 83 | \\ |
| | 84 | , |
| | 85 | }, |
| | 86 | .ReleaseFast = .{ |
| | 87 | .expect = |
| | 88 | \\error: TheSkyIsFalling |
| | 89 | \\ |
| | 90 | , |
| | 91 | }, |
| | 92 | .ReleaseSmall = .{ |
| | 93 | .expect = |
| | 94 | \\error: TheSkyIsFalling |
| | 95 | \\ |
| | 96 | , |
| | 97 | }, |
| | 98 | }); |
| | 99 | |
| | 100 | cases.addCase(.{ |
| | 101 | .name = "try try return return", |
| | 102 | .source = |
| 28 | \\fn foo() !void { | 103 | \\fn foo() !void { |
| 29 | \\ try bar(); | 104 | \\ try bar(); |
| 30 | \\} | 105 | \\} |
| ... | @@ -40,9 +115,66 @@ pub fn addCases(cases: *tests.StackTracesContext) void { | ... | @@ -40,9 +115,66 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 40 | \\pub fn main() !void { | 115 | \\pub fn main() !void { |
| 41 | \\ try foo(); | 116 | \\ try foo(); |
| 42 | \\} | 117 | \\} |
| 43 | ; | 118 | , |
| | 119 | .Debug = .{ |
| | 120 | .expect = |
| | 121 | \\error: TheSkyIsFalling |
| | 122 | \\source.zig:10:5: [address] in make_error (test) |
| | 123 | \\ return error.TheSkyIsFalling; |
| | 124 | \\ ^ |
| | 125 | \\source.zig:6:5: [address] in bar (test) |
| | 126 | \\ return make_error(); |
| | 127 | \\ ^ |
| | 128 | \\source.zig:2:5: [address] in foo (test) |
| | 129 | \\ try bar(); |
| | 130 | \\ ^ |
| | 131 | \\source.zig:14:5: [address] in main (test) |
| | 132 | \\ try foo(); |
| | 133 | \\ ^ |
| | 134 | \\ |
| | 135 | , |
| | 136 | }, |
| | 137 | .ReleaseSafe = .{ |
| | 138 | .exclude_os = .{ |
| | 139 | .windows, // segfault |
| | 140 | }, |
| | 141 | .expect = |
| | 142 | \\error: TheSkyIsFalling |
| | 143 | \\source.zig:10:5: [address] in [function] |
| | 144 | \\ return error.TheSkyIsFalling; |
| | 145 | \\ ^ |
| | 146 | \\source.zig:6:5: [address] in [function] |
| | 147 | \\ return make_error(); |
| | 148 | \\ ^ |
| | 149 | \\source.zig:2:5: [address] in [function] |
| | 150 | \\ try bar(); |
| | 151 | \\ ^ |
| | 152 | \\source.zig:14:5: [address] in [function] |
| | 153 | \\ try foo(); |
| | 154 | \\ ^ |
| | 155 | \\ |
| | 156 | , |
| | 157 | }, |
| | 158 | .ReleaseFast = .{ |
| | 159 | .expect = |
| | 160 | \\error: TheSkyIsFalling |
| | 161 | \\ |
| | 162 | , |
| | 163 | }, |
| | 164 | .ReleaseSmall = .{ |
| | 165 | .expect = |
| | 166 | \\error: TheSkyIsFalling |
| | 167 | \\ |
| | 168 | , |
| | 169 | }, |
| | 170 | }); |
| 44 | | 171 | |
| 45 | const source_dumpCurrentStackTrace = | 172 | cases.addCase(.{ |
| | 173 | .exclude_os = .{ |
| | 174 | .windows, |
| | 175 | }, |
| | 176 | .name = "dumpCurrentStackTrace", |
| | 177 | .source = |
| 46 | \\const std = @import("std"); | 178 | \\const std = @import("std"); |
| 47 | \\ | 179 | \\ |
| 48 | \\fn bar() void { | 180 | \\fn bar() void { |
| ... | @@ -55,450 +187,17 @@ pub fn addCases(cases: *tests.StackTracesContext) void { | ... | @@ -55,450 +187,17 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 55 | \\ foo(); | 187 | \\ foo(); |
| 56 | \\ return 1; | 188 | \\ return 1; |
| 57 | \\} | 189 | \\} |
| 58 | ; | 190 | , |
| 59 | | 191 | .Debug = .{ |
| 60 | switch (std.Target.current.os.tag) { | 192 | .expect = |
| 61 | .freebsd => { | 193 | \\source.zig:7:8: [address] in foo (test) |
| 62 | cases.addCase( | 194 | \\ bar(); |
| 63 | "return", | 195 | \\ ^ |
| 64 | source_return, | 196 | \\source.zig:10:8: [address] in main (test) |
| 65 | [_][]const u8{ | 197 | \\ foo(); |
| 66 | // debug | 198 | \\ ^ |
| 67 | \\error: TheSkyIsFalling | 199 | \\ |
| 68 | \\source.zig:4:5: [address] in main (test) | 200 | , |
| 69 | \\ return error.TheSkyIsFalling; | | |
| 70 | \\ ^ | | |
| 71 | \\ | | |
| 72 | , | | |
| 73 | // release-safe | | |
| 74 | \\error: TheSkyIsFalling | | |
| 75 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 76 | \\ return error.TheSkyIsFalling; | | |
| 77 | \\ ^ | | |
| 78 | \\ | | |
| 79 | , | | |
| 80 | // release-fast | | |
| 81 | \\error: TheSkyIsFalling | | |
| 82 | \\ | | |
| 83 | , | | |
| 84 | // release-small | | |
| 85 | \\error: TheSkyIsFalling | | |
| 86 | \\ | | |
| 87 | }, | | |
| 88 | ); | | |
| 89 | cases.addCase( | | |
| 90 | "try return", | | |
| 91 | source_try_return, | | |
| 92 | [_][]const u8{ | | |
| 93 | // debug | | |
| 94 | \\error: TheSkyIsFalling | | |
| 95 | \\source.zig:4:5: [address] in foo (test) | | |
| 96 | \\ return error.TheSkyIsFalling; | | |
| 97 | \\ ^ | | |
| 98 | \\source.zig:8:5: [address] in main (test) | | |
| 99 | \\ try foo(); | | |
| 100 | \\ ^ | | |
| 101 | \\ | | |
| 102 | , | | |
| 103 | // release-safe | | |
| 104 | \\error: TheSkyIsFalling | | |
| 105 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 106 | \\ return error.TheSkyIsFalling; | | |
| 107 | \\ ^ | | |
| 108 | \\source.zig:8:5: [address] in std.start.main (test) | | |
| 109 | \\ try foo(); | | |
| 110 | \\ ^ | | |
| 111 | \\ | | |
| 112 | , | | |
| 113 | // release-fast | | |
| 114 | \\error: TheSkyIsFalling | | |
| 115 | \\ | | |
| 116 | , | | |
| 117 | // release-small | | |
| 118 | \\error: TheSkyIsFalling | | |
| 119 | \\ | | |
| 120 | }, | | |
| 121 | ); | | |
| 122 | cases.addCase( | | |
| 123 | "try try return return", | | |
| 124 | source_try_try_return_return, | | |
| 125 | [_][]const u8{ | | |
| 126 | // debug | | |
| 127 | \\error: TheSkyIsFalling | | |
| 128 | \\source.zig:12:5: [address] in make_error (test) | | |
| 129 | \\ return error.TheSkyIsFalling; | | |
| 130 | \\ ^ | | |
| 131 | \\source.zig:8:5: [address] in bar (test) | | |
| 132 | \\ return make_error(); | | |
| 133 | \\ ^ | | |
| 134 | \\source.zig:4:5: [address] in foo (test) | | |
| 135 | \\ try bar(); | | |
| 136 | \\ ^ | | |
| 137 | \\source.zig:16:5: [address] in main (test) | | |
| 138 | \\ try foo(); | | |
| 139 | \\ ^ | | |
| 140 | \\ | | |
| 141 | , | | |
| 142 | // release-safe | | |
| 143 | \\error: TheSkyIsFalling | | |
| 144 | \\source.zig:12:5: [address] in std.start.main (test) | | |
| 145 | \\ return error.TheSkyIsFalling; | | |
| 146 | \\ ^ | | |
| 147 | \\source.zig:8:5: [address] in std.start.main (test) | | |
| 148 | \\ return make_error(); | | |
| 149 | \\ ^ | | |
| 150 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 151 | \\ try bar(); | | |
| 152 | \\ ^ | | |
| 153 | \\source.zig:16:5: [address] in std.start.main (test) | | |
| 154 | \\ try foo(); | | |
| 155 | \\ ^ | | |
| 156 | \\ | | |
| 157 | , | | |
| 158 | // release-fast | | |
| 159 | \\error: TheSkyIsFalling | | |
| 160 | \\ | | |
| 161 | , | | |
| 162 | // release-small | | |
| 163 | \\error: TheSkyIsFalling | | |
| 164 | \\ | | |
| 165 | }, | | |
| 166 | ); | | |
| 167 | }, | | |
| 168 | .linux => { | | |
| 169 | cases.addCase( | | |
| 170 | "return", | | |
| 171 | source_return, | | |
| 172 | [_][]const u8{ | | |
| 173 | // debug | | |
| 174 | \\error: TheSkyIsFalling | | |
| 175 | \\source.zig:4:5: [address] in main (test) | | |
| 176 | \\ return error.TheSkyIsFalling; | | |
| 177 | \\ ^ | | |
| 178 | \\ | | |
| 179 | , | | |
| 180 | // release-safe | | |
| 181 | \\error: TheSkyIsFalling | | |
| 182 | \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 183 | \\ return error.TheSkyIsFalling; | | |
| 184 | \\ ^ | | |
| 185 | \\ | | |
| 186 | , | | |
| 187 | // release-fast | | |
| 188 | \\error: TheSkyIsFalling | | |
| 189 | \\ | | |
| 190 | , | | |
| 191 | // release-small | | |
| 192 | \\error: TheSkyIsFalling | | |
| 193 | \\ | | |
| 194 | }, | | |
| 195 | ); | | |
| 196 | cases.addCase( | | |
| 197 | "try return", | | |
| 198 | source_try_return, | | |
| 199 | [_][]const u8{ | | |
| 200 | // debug | | |
| 201 | \\error: TheSkyIsFalling | | |
| 202 | \\source.zig:4:5: [address] in foo (test) | | |
| 203 | \\ return error.TheSkyIsFalling; | | |
| 204 | \\ ^ | | |
| 205 | \\source.zig:8:5: [address] in main (test) | | |
| 206 | \\ try foo(); | | |
| 207 | \\ ^ | | |
| 208 | \\ | | |
| 209 | , | | |
| 210 | // release-safe | | |
| 211 | \\error: TheSkyIsFalling | | |
| 212 | \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 213 | \\ return error.TheSkyIsFalling; | | |
| 214 | \\ ^ | | |
| 215 | \\source.zig:8:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 216 | \\ try foo(); | | |
| 217 | \\ ^ | | |
| 218 | \\ | | |
| 219 | , | | |
| 220 | // release-fast | | |
| 221 | \\error: TheSkyIsFalling | | |
| 222 | \\ | | |
| 223 | , | | |
| 224 | // release-small | | |
| 225 | \\error: TheSkyIsFalling | | |
| 226 | \\ | | |
| 227 | }, | | |
| 228 | ); | | |
| 229 | cases.addCase( | | |
| 230 | "try try return return", | | |
| 231 | source_try_try_return_return, | | |
| 232 | [_][]const u8{ | | |
| 233 | // debug | | |
| 234 | \\error: TheSkyIsFalling | | |
| 235 | \\source.zig:12:5: [address] in make_error (test) | | |
| 236 | \\ return error.TheSkyIsFalling; | | |
| 237 | \\ ^ | | |
| 238 | \\source.zig:8:5: [address] in bar (test) | | |
| 239 | \\ return make_error(); | | |
| 240 | \\ ^ | | |
| 241 | \\source.zig:4:5: [address] in foo (test) | | |
| 242 | \\ try bar(); | | |
| 243 | \\ ^ | | |
| 244 | \\source.zig:16:5: [address] in main (test) | | |
| 245 | \\ try foo(); | | |
| 246 | \\ ^ | | |
| 247 | \\ | | |
| 248 | , | | |
| 249 | // release-safe | | |
| 250 | \\error: TheSkyIsFalling | | |
| 251 | \\source.zig:12:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 252 | \\ return error.TheSkyIsFalling; | | |
| 253 | \\ ^ | | |
| 254 | \\source.zig:8:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 255 | \\ return make_error(); | | |
| 256 | \\ ^ | | |
| 257 | \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 258 | \\ try bar(); | | |
| 259 | \\ ^ | | |
| 260 | \\source.zig:16:5: [address] in std.start.posixCallMainAndExit (test) | | |
| 261 | \\ try foo(); | | |
| 262 | \\ ^ | | |
| 263 | \\ | | |
| 264 | , | | |
| 265 | // release-fast | | |
| 266 | \\error: TheSkyIsFalling | | |
| 267 | \\ | | |
| 268 | , | | |
| 269 | // release-small | | |
| 270 | \\error: TheSkyIsFalling | | |
| 271 | \\ | | |
| 272 | }, | | |
| 273 | ); | | |
| 274 | cases.addCase( | | |
| 275 | "dumpCurrentStackTrace", | | |
| 276 | source_dumpCurrentStackTrace, | | |
| 277 | [_][]const u8{ | | |
| 278 | // debug | | |
| 279 | \\source.zig:7:8: [address] in foo (test) | | |
| 280 | \\ bar(); | | |
| 281 | \\ ^ | | |
| 282 | \\source.zig:10:8: [address] in main (test) | | |
| 283 | \\ foo(); | | |
| 284 | \\ ^ | | |
| 285 | \\start.zig:404:29: [address] in std.start.posixCallMainAndExit (test) | | |
| 286 | \\ return root.main(); | | |
| 287 | \\ ^ | | |
| 288 | \\start.zig:225:5: [address] in std.start._start (test) | | |
| 289 | \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{}); | | |
| 290 | \\ ^ | | |
| 291 | \\ | | |
| 292 | , | | |
| 293 | // release-safe | | |
| 294 | switch (std.Target.current.cpu.arch) { | | |
| 295 | .aarch64 => "", // TODO disabled; results in segfault | | |
| 296 | else => | | |
| 297 | \\start.zig:225:5: [address] in std.start._start (test) | | |
| 298 | \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{}); | | |
| 299 | \\ ^ | | |
| 300 | \\ | | |
| 301 | , | | |
| 302 | }, | | |
| 303 | // release-fast | | |
| 304 | \\ | | |
| 305 | , | | |
| 306 | // release-small | | |
| 307 | \\ | | |
| 308 | }, | | |
| 309 | ); | | |
| 310 | }, | | |
| 311 | .macos => { | | |
| 312 | cases.addCase( | | |
| 313 | "return", | | |
| 314 | source_return, | | |
| 315 | [_][]const u8{ | | |
| 316 | // debug | | |
| 317 | \\error: TheSkyIsFalling | | |
| 318 | \\source.zig:4:5: [address] in main (test) | | |
| 319 | \\ return error.TheSkyIsFalling; | | |
| 320 | \\ ^ | | |
| 321 | \\ | | |
| 322 | , | | |
| 323 | // release-safe | | |
| 324 | \\error: TheSkyIsFalling | | |
| 325 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 326 | \\ return error.TheSkyIsFalling; | | |
| 327 | \\ ^ | | |
| 328 | \\ | | |
| 329 | , | | |
| 330 | // release-fast | | |
| 331 | \\error: TheSkyIsFalling | | |
| 332 | \\ | | |
| 333 | , | | |
| 334 | // release-small | | |
| 335 | \\error: TheSkyIsFalling | | |
| 336 | \\ | | |
| 337 | }, | | |
| 338 | ); | | |
| 339 | cases.addCase( | | |
| 340 | "try return", | | |
| 341 | source_try_return, | | |
| 342 | [_][]const u8{ | | |
| 343 | // debug | | |
| 344 | \\error: TheSkyIsFalling | | |
| 345 | \\source.zig:4:5: [address] in foo (test) | | |
| 346 | \\ return error.TheSkyIsFalling; | | |
| 347 | \\ ^ | | |
| 348 | \\source.zig:8:5: [address] in main (test) | | |
| 349 | \\ try foo(); | | |
| 350 | \\ ^ | | |
| 351 | \\ | | |
| 352 | , | | |
| 353 | // release-safe | | |
| 354 | \\error: TheSkyIsFalling | | |
| 355 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 356 | \\ return error.TheSkyIsFalling; | | |
| 357 | \\ ^ | | |
| 358 | \\source.zig:8:5: [address] in std.start.main (test) | | |
| 359 | \\ try foo(); | | |
| 360 | \\ ^ | | |
| 361 | \\ | | |
| 362 | , | | |
| 363 | // release-fast | | |
| 364 | \\error: TheSkyIsFalling | | |
| 365 | \\ | | |
| 366 | , | | |
| 367 | // release-small | | |
| 368 | \\error: TheSkyIsFalling | | |
| 369 | \\ | | |
| 370 | }, | | |
| 371 | ); | | |
| 372 | cases.addCase( | | |
| 373 | "try try return return", | | |
| 374 | source_try_try_return_return, | | |
| 375 | [_][]const u8{ | | |
| 376 | // debug | | |
| 377 | \\error: TheSkyIsFalling | | |
| 378 | \\source.zig:12:5: [address] in make_error (test) | | |
| 379 | \\ return error.TheSkyIsFalling; | | |
| 380 | \\ ^ | | |
| 381 | \\source.zig:8:5: [address] in bar (test) | | |
| 382 | \\ return make_error(); | | |
| 383 | \\ ^ | | |
| 384 | \\source.zig:4:5: [address] in foo (test) | | |
| 385 | \\ try bar(); | | |
| 386 | \\ ^ | | |
| 387 | \\source.zig:16:5: [address] in main (test) | | |
| 388 | \\ try foo(); | | |
| 389 | \\ ^ | | |
| 390 | \\ | | |
| 391 | , | | |
| 392 | // release-safe | | |
| 393 | \\error: TheSkyIsFalling | | |
| 394 | \\source.zig:12:5: [address] in std.start.main (test) | | |
| 395 | \\ return error.TheSkyIsFalling; | | |
| 396 | \\ ^ | | |
| 397 | \\source.zig:8:5: [address] in std.start.main (test) | | |
| 398 | \\ return make_error(); | | |
| 399 | \\ ^ | | |
| 400 | \\source.zig:4:5: [address] in std.start.main (test) | | |
| 401 | \\ try bar(); | | |
| 402 | \\ ^ | | |
| 403 | \\source.zig:16:5: [address] in std.start.main (test) | | |
| 404 | \\ try foo(); | | |
| 405 | \\ ^ | | |
| 406 | \\ | | |
| 407 | , | | |
| 408 | // release-fast | | |
| 409 | \\error: TheSkyIsFalling | | |
| 410 | \\ | | |
| 411 | , | | |
| 412 | // release-small | | |
| 413 | \\error: TheSkyIsFalling | | |
| 414 | \\ | | |
| 415 | }, | | |
| 416 | ); | | |
| 417 | }, | | |
| 418 | .windows => { | | |
| 419 | cases.addCase( | | |
| 420 | "return", | | |
| 421 | source_return, | | |
| 422 | [_][]const u8{ | | |
| 423 | // debug | | |
| 424 | \\error: TheSkyIsFalling | | |
| 425 | \\source.zig:4:5: [address] in main (test.obj) | | |
| 426 | \\ return error.TheSkyIsFalling; | | |
| 427 | \\ ^ | | |
| 428 | \\ | | |
| 429 | , | | |
| 430 | // release-safe | | |
| 431 | // --disabled-- results in segmenetation fault | | |
| 432 | "", | | |
| 433 | // release-fast | | |
| 434 | \\error: TheSkyIsFalling | | |
| 435 | \\ | | |
| 436 | , | | |
| 437 | // release-small | | |
| 438 | \\error: TheSkyIsFalling | | |
| 439 | \\ | | |
| 440 | }, | | |
| 441 | ); | | |
| 442 | cases.addCase( | | |
| 443 | "try return", | | |
| 444 | source_try_return, | | |
| 445 | [_][]const u8{ | | |
| 446 | // debug | | |
| 447 | \\error: TheSkyIsFalling | | |
| 448 | \\source.zig:4:5: [address] in foo (test.obj) | | |
| 449 | \\ return error.TheSkyIsFalling; | | |
| 450 | \\ ^ | | |
| 451 | \\source.zig:8:5: [address] in main (test.obj) | | |
| 452 | \\ try foo(); | | |
| 453 | \\ ^ | | |
| 454 | \\ | | |
| 455 | , | | |
| 456 | // release-safe | | |
| 457 | // --disabled-- results in segmenetation fault | | |
| 458 | "", | | |
| 459 | // release-fast | | |
| 460 | \\error: TheSkyIsFalling | | |
| 461 | \\ | | |
| 462 | , | | |
| 463 | // release-small | | |
| 464 | \\error: TheSkyIsFalling | | |
| 465 | \\ | | |
| 466 | }, | | |
| 467 | ); | | |
| 468 | cases.addCase( | | |
| 469 | "try try return return", | | |
| 470 | source_try_try_return_return, | | |
| 471 | [_][]const u8{ | | |
| 472 | // debug | | |
| 473 | \\error: TheSkyIsFalling | | |
| 474 | \\source.zig:12:5: [address] in make_error (test.obj) | | |
| 475 | \\ return error.TheSkyIsFalling; | | |
| 476 | \\ ^ | | |
| 477 | \\source.zig:8:5: [address] in bar (test.obj) | | |
| 478 | \\ return make_error(); | | |
| 479 | \\ ^ | | |
| 480 | \\source.zig:4:5: [address] in foo (test.obj) | | |
| 481 | \\ try bar(); | | |
| 482 | \\ ^ | | |
| 483 | \\source.zig:16:5: [address] in main (test.obj) | | |
| 484 | \\ try foo(); | | |
| 485 | \\ ^ | | |
| 486 | \\ | | |
| 487 | , | | |
| 488 | // release-safe | | |
| 489 | // --disabled-- results in segmenetation fault | | |
| 490 | "", | | |
| 491 | // release-fast | | |
| 492 | \\error: TheSkyIsFalling | | |
| 493 | \\ | | |
| 494 | , | | |
| 495 | // release-small | | |
| 496 | \\error: TheSkyIsFalling | | |
| 497 | \\ | | |
| 498 | }, | | |
| 499 | ); | | |
| 500 | }, | 201 | }, |
| 501 | else => {}, | 202 | }); |
| 502 | } | | |
| 503 | } | 203 | } |
| 504 | // zig fmt: off | | |