diff options
Diffstat (limited to 'lib/asan/tests/stack-use-after-return.cc')
-rw-r--r-- | lib/asan/tests/stack-use-after-return.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/asan/tests/stack-use-after-return.cc b/lib/asan/tests/stack-use-after-return.cc new file mode 100644 index 0000000..9098edf --- /dev/null +++ b/lib/asan/tests/stack-use-after-return.cc @@ -0,0 +1,24 @@ +#include <stdio.h> + +__attribute__((noinline)) +char *Ident(char *x) { + fprintf(stderr, "1: %p\n", x); + return x; +} + +__attribute__((noinline)) +char *Func1() { + char local; + return Ident(&local); +} + +__attribute__((noinline)) +void Func2(char *x) { + fprintf(stderr, "2: %p\n", x); + *x = 1; +} + +int main(int argc, char **argv) { + Func2(Func1()); + return 0; +} |