asan: Fix up address sanitizer instrumentation of __builtin_alloca* if it can throw...
authorJakub Jelinek <jakub@redhat.com>
Sat, 12 Feb 2022 18:17:44 +0000 (19:17 +0100)
committerJakub Jelinek <jakub@redhat.com>
Sat, 12 Feb 2022 18:17:44 +0000 (19:17 +0100)
commitf0c7367b8802c47efaad87b1f2126fe6350d8b47
treedf53385c4613bae236711f681d0289f74be4ffa5
parent5c4258d7c78a92ab17c14dec1163d87fc42ff019
asan: Fix up address sanitizer instrumentation of __builtin_alloca* if it can throw [PR104449]

With -fstack-check* __builtin_alloca* can throw and the asan
instrumentation of this builtin wasn't prepared for that case.
The following patch fixes that by replacing the builtin with the
replacement builtin and emitting any further insns on the fallthru
edge.

I haven't touched the hwasan code which most likely suffers from the
same problem.

2022-02-12  Jakub Jelinek  <jakub@redhat.com>

PR sanitizer/104449
* asan.cc: Include tree-eh.h.
(handle_builtin_alloca): Handle the case when __builtin_alloca or
__builtin_alloca_with_align can throw.

* gcc.dg/asan/pr104449.c: New test.
* g++.dg/asan/pr104449.C: New test.
gcc/asan.cc
gcc/testsuite/g++.dg/asan/pr104449.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/asan/pr104449.c [new file with mode: 0644]