1 // Check that we can store lots of stack frames if asked to.
4 // { dg-skip-if "" { *-*-* } { "-flto" } { "" } }
5 // { dg-set-target-env-var ASAN_OPTIONS "malloc_context_size=120:redzone=512" }
6 // { dg-options "-fno-omit-frame-pointer -fno-optimize-sibling-calls" }
7 // { dg-additional-options "-mno-omit-leaf-frame-pointer" { target { i?86-*-* x86_64-*-* } } }
8 // { dg-shouldfail "asan" }
15 static void __attribute__((noinline))
17 DeepFree<depth - 1>::free(x);
23 static void __attribute__((noinline))
30 char *x = (char*)malloc(10);
32 DeepFree<200>::free(x);
36 // { dg-output "ERROR: AddressSanitizer:? heap-use-after-free on address.*(\n|\r\n|\r)" }
37 // { dg-output " #37 0x\[0-9a-f\]+ (in \[^\n\r]*DeepFree\[^\n\r]*36|\[(\]).*(\n|\r\n|\r)" }
38 // { dg-output " #99 0x\[0-9a-f\]+ (in \[^\n\r]*DeepFree\[^\n\r]*98|\[(\]).*(\n|\r\n|\r)" }
39 // { dg-output " #116 0x\[0-9a-f\]+ (in \[^\n\r]*DeepFree\[^\n\r]*115|\[(\])\[^\n\r]*(\n|\r\n|\r)" }