authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-02-07 17:08:21+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-02-07 17:08:21+01:00
log8d6536b50cfd43c07c6f0264171db6ecf8e80be5
treef29a4c35f5ac8077ed8a741e55ecc0da9ce31bd3
parent5076f2d4f6918946616504d22907c9f80601caf8

codegen: Use the new frame-pointer fn attributes

no-frame-pointer-elim and no-frame-pointer-elim-non-leaf have been deprecated for a while in favour of the newer (and clearer) frame-pointer attribute. Starting with LLVM10 the old attributes are silently ignored, leading to no stack traces in debug mode.

2 files changed, 95 insertions(+), 53 deletions(-)

src/codegen.cpp+5-10
...@@ -564,8 +564,7 @@ static LLVMValueRef make_fn_llvm_value(CodeGen *g, ZigFn *fn) {...@@ -564,8 +564,7 @@ static LLVMValueRef make_fn_llvm_value(CodeGen *g, ZigFn *fn) {
564 add_uwtable_attr(g, llvm_fn);564 add_uwtable_attr(g, llvm_fn);
565 addLLVMFnAttr(llvm_fn, "nobuiltin");565 addLLVMFnAttr(llvm_fn, "nobuiltin");
566 if (codegen_have_frame_pointer(g) && fn->fn_inline != FnInlineAlways) {566 if (codegen_have_frame_pointer(g) && fn->fn_inline != FnInlineAlways) {
567 ZigLLVMAddFunctionAttr(llvm_fn, "no-frame-pointer-elim", "true");567 ZigLLVMAddFunctionAttr(llvm_fn, "frame-pointer", "all");
568 ZigLLVMAddFunctionAttr(llvm_fn, "no-frame-pointer-elim-non-leaf", nullptr);
569 }568 }
570 if (fn->section_name) {569 if (fn->section_name) {
571 LLVMSetSection(llvm_fn, buf_ptr(fn->section_name));570 LLVMSetSection(llvm_fn, buf_ptr(fn->section_name));
...@@ -1128,8 +1127,7 @@ static LLVMValueRef get_add_error_return_trace_addr_fn(CodeGen *g) {...@@ -1128,8 +1127,7 @@ static LLVMValueRef get_add_error_return_trace_addr_fn(CodeGen *g) {
1128 // on any architecture.1127 // on any architecture.
1129 addLLVMArgAttr(fn_val, (unsigned)0, "nonnull");1128 addLLVMArgAttr(fn_val, (unsigned)0, "nonnull");
1130 if (codegen_have_frame_pointer(g)) {1129 if (codegen_have_frame_pointer(g)) {
1131 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim", "true");1130 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
1132 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim-non-leaf", nullptr);
1133 }1131 }
11341132
1135 LLVMBasicBlockRef entry_block = LLVMAppendBasicBlock(fn_val, "Entry");1133 LLVMBasicBlockRef entry_block = LLVMAppendBasicBlock(fn_val, "Entry");
...@@ -1206,8 +1204,7 @@ static LLVMValueRef get_return_err_fn(CodeGen *g) {...@@ -1206,8 +1204,7 @@ static LLVMValueRef get_return_err_fn(CodeGen *g) {
1206 addLLVMFnAttr(fn_val, "nounwind");1204 addLLVMFnAttr(fn_val, "nounwind");
1207 add_uwtable_attr(g, fn_val);1205 add_uwtable_attr(g, fn_val);
1208 if (codegen_have_frame_pointer(g)) {1206 if (codegen_have_frame_pointer(g)) {
1209 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim", "true");1207 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
1210 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim-non-leaf", nullptr);
1211 }1208 }
12121209
1213 // this is above the ZigLLVMClearCurrentDebugLocation1210 // this is above the ZigLLVMClearCurrentDebugLocation
...@@ -1290,8 +1287,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) {...@@ -1290,8 +1287,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) {
1290 addLLVMFnAttr(fn_val, "nounwind");1287 addLLVMFnAttr(fn_val, "nounwind");
1291 add_uwtable_attr(g, fn_val);1288 add_uwtable_attr(g, fn_val);
1292 if (codegen_have_frame_pointer(g)) {1289 if (codegen_have_frame_pointer(g)) {
1293 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim", "true");1290 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
1294 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim-non-leaf", nullptr);
1295 }1291 }
1296 // Not setting alignment here. See the comment above about1292 // Not setting alignment here. See the comment above about
1297 // "Cannot getTypeInfo() on a type that is unsized!"1293 // "Cannot getTypeInfo() on a type that is unsized!"
...@@ -4995,8 +4991,7 @@ static LLVMValueRef get_enum_tag_name_function(CodeGen *g, ZigType *enum_type) {...@@ -4995,8 +4991,7 @@ static LLVMValueRef get_enum_tag_name_function(CodeGen *g, ZigType *enum_type) {
4995 addLLVMFnAttr(fn_val, "nounwind");4991 addLLVMFnAttr(fn_val, "nounwind");
4996 add_uwtable_attr(g, fn_val);4992 add_uwtable_attr(g, fn_val);
4997 if (codegen_have_frame_pointer(g)) {4993 if (codegen_have_frame_pointer(g)) {
4998 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim", "true");4994 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
4999 ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim-non-leaf", nullptr);
5000 }4995 }
50014996
5002 LLVMBasicBlockRef prev_block = LLVMGetInsertBlock(g->builder);4997 LLVMBasicBlockRef prev_block = LLVMGetInsertBlock(g->builder);
test/stack_traces.zig+90-43
...@@ -41,6 +41,21 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -41,6 +41,21 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
41 \\ try foo();41 \\ try foo();
42 \\}42 \\}
43 ;43 ;
44 const source_dumpCurrentStackTrace =
45 \\const std = @import("std");
46 \\
47 \\fn bar() void {
48 \\ std.debug.dumpCurrentStackTrace(@returnAddress());
49 \\}
50 \\fn foo() void {
51 \\ bar();
52 \\}
53 \\pub fn main() u8 {
54 \\ foo();
55 \\ return 1;
56 \\}
57 ;
58
44 // zig fmt: off59 // zig fmt: off
45 switch (builtin.os) {60 switch (builtin.os) {
46 .freebsd => {61 .freebsd => {
...@@ -49,25 +64,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -49,25 +64,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
49 source_return,64 source_return,
50 [_][]const u8{65 [_][]const u8{
51 // debug66 // debug
52 \\error: TheSkyIsFalling67 \\error: TheSkyIsFalling
53 \\source.zig:4:5: [address] in main (test)68 \\source.zig:4:5: [address] in main (test)
54 \\ return error.TheSkyIsFalling;69 \\ return error.TheSkyIsFalling;
55 \\ ^70 \\ ^
56 \\71 \\
57 ,72 ,
58 // release-safe73 // release-safe
59 \\error: TheSkyIsFalling74 \\error: TheSkyIsFalling
60 \\source.zig:4:5: [address] in std.start.main (test)75 \\source.zig:4:5: [address] in std.start.main (test)
61 \\ return error.TheSkyIsFalling;76 \\ return error.TheSkyIsFalling;
62 \\ ^77 \\ ^
63 \\78 \\
64 ,79 ,
65 // release-fast80 // release-fast
66 \\error: TheSkyIsFalling81 \\error: TheSkyIsFalling
67 \\82 \\
68 ,83 ,
69 // release-small84 // release-small
70 \\error: TheSkyIsFalling85 \\error: TheSkyIsFalling
71 \\86 \\
72 },87 },
73 );88 );
...@@ -76,7 +91,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -76,7 +91,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
76 source_try_return,91 source_try_return,
77 [_][]const u8{92 [_][]const u8{
78 // debug93 // debug
79 \\error: TheSkyIsFalling94 \\error: TheSkyIsFalling
80 \\source.zig:4:5: [address] in foo (test)95 \\source.zig:4:5: [address] in foo (test)
81 \\ return error.TheSkyIsFalling;96 \\ return error.TheSkyIsFalling;
82 \\ ^97 \\ ^
...@@ -86,7 +101,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -86,7 +101,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
86 \\101 \\
87 ,102 ,
88 // release-safe103 // release-safe
89 \\error: TheSkyIsFalling104 \\error: TheSkyIsFalling
90 \\source.zig:4:5: [address] in std.start.main (test)105 \\source.zig:4:5: [address] in std.start.main (test)
91 \\ return error.TheSkyIsFalling;106 \\ return error.TheSkyIsFalling;
92 \\ ^107 \\ ^
...@@ -96,11 +111,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -96,11 +111,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
96 \\111 \\
97 ,112 ,
98 // release-fast113 // release-fast
99 \\error: TheSkyIsFalling114 \\error: TheSkyIsFalling
100 \\115 \\
101 ,116 ,
102 // release-small117 // release-small
103 \\error: TheSkyIsFalling118 \\error: TheSkyIsFalling
104 \\119 \\
105 },120 },
106 );121 );
...@@ -109,7 +124,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -109,7 +124,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
109 source_try_try_return_return,124 source_try_try_return_return,
110 [_][]const u8{125 [_][]const u8{
111 // debug126 // debug
112 \\error: TheSkyIsFalling127 \\error: TheSkyIsFalling
113 \\source.zig:12:5: [address] in make_error (test)128 \\source.zig:12:5: [address] in make_error (test)
114 \\ return error.TheSkyIsFalling;129 \\ return error.TheSkyIsFalling;
115 \\ ^130 \\ ^
...@@ -125,7 +140,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -125,7 +140,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
125 \\140 \\
126 ,141 ,
127 // release-safe142 // release-safe
128 \\error: TheSkyIsFalling143 \\error: TheSkyIsFalling
129 \\source.zig:12:5: [address] in std.start.main (test)144 \\source.zig:12:5: [address] in std.start.main (test)
130 \\ return error.TheSkyIsFalling;145 \\ return error.TheSkyIsFalling;
131 \\ ^146 \\ ^
...@@ -141,11 +156,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -141,11 +156,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
141 \\156 \\
142 ,157 ,
143 // release-fast158 // release-fast
144 \\error: TheSkyIsFalling159 \\error: TheSkyIsFalling
145 \\160 \\
146 ,161 ,
147 // release-small162 // release-small
148 \\error: TheSkyIsFalling163 \\error: TheSkyIsFalling
149 \\164 \\
150 },165 },
151 );166 );
...@@ -156,25 +171,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -156,25 +171,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
156 source_return,171 source_return,
157 [_][]const u8{172 [_][]const u8{
158 // debug173 // debug
159 \\error: TheSkyIsFalling174 \\error: TheSkyIsFalling
160 \\source.zig:4:5: [address] in main (test)175 \\source.zig:4:5: [address] in main (test)
161 \\ return error.TheSkyIsFalling;176 \\ return error.TheSkyIsFalling;
162 \\ ^177 \\ ^
163 \\178 \\
164 ,179 ,
165 // release-safe180 // release-safe
166 \\error: TheSkyIsFalling181 \\error: TheSkyIsFalling
167 \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test)182 \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test)
168 \\ return error.TheSkyIsFalling;183 \\ return error.TheSkyIsFalling;
169 \\ ^184 \\ ^
170 \\185 \\
171 ,186 ,
172 // release-fast187 // release-fast
173 \\error: TheSkyIsFalling188 \\error: TheSkyIsFalling
174 \\189 \\
175 ,190 ,
176 // release-small191 // release-small
177 \\error: TheSkyIsFalling192 \\error: TheSkyIsFalling
178 \\193 \\
179 },194 },
180 );195 );
...@@ -183,7 +198,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -183,7 +198,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
183 source_try_return,198 source_try_return,
184 [_][]const u8{199 [_][]const u8{
185 // debug200 // debug
186 \\error: TheSkyIsFalling201 \\error: TheSkyIsFalling
187 \\source.zig:4:5: [address] in foo (test)202 \\source.zig:4:5: [address] in foo (test)
188 \\ return error.TheSkyIsFalling;203 \\ return error.TheSkyIsFalling;
189 \\ ^204 \\ ^
...@@ -193,7 +208,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -193,7 +208,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
193 \\208 \\
194 ,209 ,
195 // release-safe210 // release-safe
196 \\error: TheSkyIsFalling211 \\error: TheSkyIsFalling
197 \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test)212 \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test)
198 \\ return error.TheSkyIsFalling;213 \\ return error.TheSkyIsFalling;
199 \\ ^214 \\ ^
...@@ -203,11 +218,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -203,11 +218,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
203 \\218 \\
204 ,219 ,
205 // release-fast220 // release-fast
206 \\error: TheSkyIsFalling221 \\error: TheSkyIsFalling
207 \\222 \\
208 ,223 ,
209 // release-small224 // release-small
210 \\error: TheSkyIsFalling225 \\error: TheSkyIsFalling
211 \\226 \\
212 },227 },
213 );228 );
...@@ -216,7 +231,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -216,7 +231,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
216 source_try_try_return_return,231 source_try_try_return_return,
217 [_][]const u8{232 [_][]const u8{
218 // debug233 // debug
219 \\error: TheSkyIsFalling234 \\error: TheSkyIsFalling
220 \\source.zig:12:5: [address] in make_error (test)235 \\source.zig:12:5: [address] in make_error (test)
221 \\ return error.TheSkyIsFalling;236 \\ return error.TheSkyIsFalling;
222 \\ ^237 \\ ^
...@@ -232,7 +247,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -232,7 +247,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
232 \\247 \\
233 ,248 ,
234 // release-safe249 // release-safe
235 \\error: TheSkyIsFalling250 \\error: TheSkyIsFalling
236 \\source.zig:12:5: [address] in std.start.posixCallMainAndExit (test)251 \\source.zig:12:5: [address] in std.start.posixCallMainAndExit (test)
237 \\ return error.TheSkyIsFalling;252 \\ return error.TheSkyIsFalling;
238 \\ ^253 \\ ^
...@@ -248,14 +263,46 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -248,14 +263,46 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
248 \\263 \\
249 ,264 ,
250 // release-fast265 // release-fast
251 \\error: TheSkyIsFalling266 \\error: TheSkyIsFalling
252 \\267 \\
253 ,268 ,
254 // release-small269 // release-small
255 \\error: TheSkyIsFalling270 \\error: TheSkyIsFalling
256 \\271 \\
257 },272 },
258 );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:247:29: [address] in std.start.posixCallMainAndExit (test)
286 \\ return root.main();
287 \\ ^
288 \\start.zig:114:5: [address] in std.start._start (test)
289 \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{});
290 \\ ^
291 \\
292 ,
293 // release-safe
294 \\start.zig:114:5: [address] in std.start._start (test)
295 \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{});
296 \\ ^
297 \\
298 ,
299 // release-fast
300 \\
301 ,
302 // release-small
303 \\
304 },
305 );
259 },306 },
260 .macosx => {307 .macosx => {
261 cases.addCase(308 cases.addCase(
...@@ -263,25 +310,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -263,25 +310,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
263 source_return,310 source_return,
264 [_][]const u8{311 [_][]const u8{
265 // debug312 // debug
266 \\error: TheSkyIsFalling313 \\error: TheSkyIsFalling
267 \\source.zig:4:5: [address] in _main.0 (test.o)314 \\source.zig:4:5: [address] in _main.0 (test.o)
268 \\ return error.TheSkyIsFalling;315 \\ return error.TheSkyIsFalling;
269 \\ ^316 \\ ^
270 \\317 \\
271 ,318 ,
272 // release-safe319 // release-safe
273 \\error: TheSkyIsFalling320 \\error: TheSkyIsFalling
274 \\source.zig:4:5: [address] in _main (test.o)321 \\source.zig:4:5: [address] in _main (test.o)
275 \\ return error.TheSkyIsFalling;322 \\ return error.TheSkyIsFalling;
276 \\ ^323 \\ ^
277 \\324 \\
278 ,325 ,
279 // release-fast326 // release-fast
280 \\error: TheSkyIsFalling327 \\error: TheSkyIsFalling
281 \\328 \\
282 ,329 ,
283 // release-small330 // release-small
284 \\error: TheSkyIsFalling331 \\error: TheSkyIsFalling
285 \\332 \\
286 },333 },
287 );334 );
...@@ -290,7 +337,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -290,7 +337,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
290 source_try_return,337 source_try_return,
291 [_][]const u8{338 [_][]const u8{
292 // debug339 // debug
293 \\error: TheSkyIsFalling340 \\error: TheSkyIsFalling
294 \\source.zig:4:5: [address] in _foo (test.o)341 \\source.zig:4:5: [address] in _foo (test.o)
295 \\ return error.TheSkyIsFalling;342 \\ return error.TheSkyIsFalling;
296 \\ ^343 \\ ^
...@@ -300,7 +347,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -300,7 +347,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
300 \\347 \\
301 ,348 ,
302 // release-safe349 // release-safe
303 \\error: TheSkyIsFalling350 \\error: TheSkyIsFalling
304 \\source.zig:4:5: [address] in _main (test.o)351 \\source.zig:4:5: [address] in _main (test.o)
305 \\ return error.TheSkyIsFalling;352 \\ return error.TheSkyIsFalling;
306 \\ ^353 \\ ^
...@@ -310,11 +357,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -310,11 +357,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
310 \\357 \\
311 ,358 ,
312 // release-fast359 // release-fast
313 \\error: TheSkyIsFalling360 \\error: TheSkyIsFalling
314 \\361 \\
315 ,362 ,
316 // release-small363 // release-small
317 \\error: TheSkyIsFalling364 \\error: TheSkyIsFalling
318 \\365 \\
319 },366 },
320 );367 );
...@@ -323,7 +370,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -323,7 +370,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
323 source_try_try_return_return,370 source_try_try_return_return,
324 [_][]const u8{371 [_][]const u8{
325 // debug372 // debug
326 \\error: TheSkyIsFalling373 \\error: TheSkyIsFalling
327 \\source.zig:12:5: [address] in _make_error (test.o)374 \\source.zig:12:5: [address] in _make_error (test.o)
328 \\ return error.TheSkyIsFalling;375 \\ return error.TheSkyIsFalling;
329 \\ ^376 \\ ^
...@@ -339,7 +386,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -339,7 +386,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
339 \\386 \\
340 ,387 ,
341 // release-safe388 // release-safe
342 \\error: TheSkyIsFalling389 \\error: TheSkyIsFalling
343 \\source.zig:12:5: [address] in _main (test.o)390 \\source.zig:12:5: [address] in _main (test.o)
344 \\ return error.TheSkyIsFalling;391 \\ return error.TheSkyIsFalling;
345 \\ ^392 \\ ^
...@@ -355,11 +402,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -355,11 +402,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
355 \\402 \\
356 ,403 ,
357 // release-fast404 // release-fast
358 \\error: TheSkyIsFalling405 \\error: TheSkyIsFalling
359 \\406 \\
360 ,407 ,
361 // release-small408 // release-small
362 \\error: TheSkyIsFalling409 \\error: TheSkyIsFalling
363 \\410 \\
364 },411 },
365 );412 );
...@@ -370,7 +417,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -370,7 +417,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
370 source_return,417 source_return,
371 [_][]const u8{418 [_][]const u8{
372 // debug419 // debug
373 \\error: TheSkyIsFalling420 \\error: TheSkyIsFalling
374 \\source.zig:4:5: [address] in main (test.obj)421 \\source.zig:4:5: [address] in main (test.obj)
375 \\ return error.TheSkyIsFalling;422 \\ return error.TheSkyIsFalling;
376 \\ ^423 \\ ^
...@@ -380,11 +427,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -380,11 +427,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
380 // --disabled-- results in segmenetation fault427 // --disabled-- results in segmenetation fault
381 "",428 "",
382 // release-fast429 // release-fast
383 \\error: TheSkyIsFalling430 \\error: TheSkyIsFalling
384 \\431 \\
385 ,432 ,
386 // release-small433 // release-small
387 \\error: TheSkyIsFalling434 \\error: TheSkyIsFalling
388 \\435 \\
389 },436 },
390 );437 );
...@@ -406,11 +453,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -406,11 +453,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
406 // --disabled-- results in segmenetation fault453 // --disabled-- results in segmenetation fault
407 "",454 "",
408 // release-fast455 // release-fast
409 \\error: TheSkyIsFalling456 \\error: TheSkyIsFalling
410 \\457 \\
411 ,458 ,
412 // release-small459 // release-small
413 \\error: TheSkyIsFalling460 \\error: TheSkyIsFalling
414 \\461 \\
415 },462 },
416 );463 );
...@@ -438,11 +485,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {...@@ -438,11 +485,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
438 // --disabled-- results in segmenetation fault485 // --disabled-- results in segmenetation fault
439 "",486 "",
440 // release-fast487 // release-fast
441 \\error: TheSkyIsFalling488 \\error: TheSkyIsFalling
442 \\489 \\
443 ,490 ,
444 // release-small491 // release-small
445 \\error: TheSkyIsFalling492 \\error: TheSkyIsFalling
446 \\493 \\
447 },494 },
448 );495 );