]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ASAN: call initialize_sanitizer_builtins for hwasan [PR115205]
authorAndrew Pinski <quic_apinski@quicinc.com>
Mon, 12 Aug 2024 04:26:59 +0000 (21:26 -0700)
committerAndrew Pinski <quic_apinski@quicinc.com>
Wed, 21 Aug 2024 00:16:06 +0000 (17:16 -0700)
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>
gcc/asan.cc

index 9e0f51b1477c8d21d32072a16c075352c18c24b8..5f262d54a3ace7b2206c13c2a7023d9259d7bb7b 100644 (file)
@@ -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;