diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2024-08-11 21:26:59 -0700 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2024-08-20 17:16:06 -0700 |
commit | efe3da62758ed031486005e0b912de23a0a6b4c6 (patch) | |
tree | 11b1b59abbbb38e8aabb5c4fd45caa6b021eb9de | |
parent | 1b72e07696a062e628c35e4bd25926c11ac18297 (diff) | |
download | gcc-efe3da62758ed031486005e0b912de23a0a6b4c6.zip gcc-efe3da62758ed031486005e0b912de23a0a6b4c6.tar.gz gcc-efe3da62758ed031486005e0b912de23a0a6b4c6.tar.bz2 |
ASAN: call initialize_sanitizer_builtins for hwasan [PR115205]
Sometimes initialize_sanitizer_builtins is not called before emitting
the asan builtins with hwasan. In the case of the bug report, there
was a path with the fortran front-end where it was not called.
So let's call it in asan_instrument before calling transform_statements
and from hwasan_finish_file.
Built and tested for aarch64-linux-gnu with no regressions.
Changes since v1:
* v2: Add call of asan_instrument to hwasan_finish_file also.
gcc/ChangeLog:
PR sanitizer/115205
* asan.cc (asan_instrument): Call initialize_sanitizer_builtins
for hwasan.
(hwasan_finish_file): Likewise.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
-rw-r--r-- | gcc/asan.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/asan.cc b/gcc/asan.cc index 9e0f51b..5f262d5 100644 --- a/gcc/asan.cc +++ b/gcc/asan.cc @@ -4276,6 +4276,7 @@ asan_instrument (void) { if (hwasan_sanitize_p ()) { + initialize_sanitizer_builtins (); transform_statements (); return 0; } @@ -4694,6 +4695,8 @@ hwasan_finish_file (void) if (flag_sanitize & SANITIZE_KERNEL_HWADDRESS) return; + initialize_sanitizer_builtins (); + /* Avoid instrumenting code in the hwasan constructors/destructors. */ flag_sanitize &= ~SANITIZE_HWADDRESS; int priority = MAX_RESERVED_INIT_PRIORITY - 1; |