Disable hwasan for fault_address_tag

Test: atest art_standalone_sigchain_tests on flame_hwasan
Bug: 254365701
Change-Id: Ia7a7362c09278fc0f1a690d752cae252673cc0f2
diff --git a/sigchainlib/sigchain_test.cc b/sigchainlib/sigchain_test.cc
index 6af38be..7d5d5f0 100644
--- a/sigchainlib/sigchain_test.cc
+++ b/sigchainlib/sigchain_test.cc
@@ -37,6 +37,12 @@
 
 #include "sigchain.h"
 
+#if defined(__clang__) && __has_feature(hwaddress_sanitizer)
+#define DISABLE_HWASAN __attribute__((no_sanitize("hwaddress")))
+#else
+#define DISABLE_HWASAN
+#endif
+
 #if !defined(__BIONIC__)
 using sigset64_t = sigset_t;
 
@@ -249,9 +255,8 @@
   called = 0;
 }
 
-TEST_F(SigchainTest, fault_address_tag) {
-#define SA_EXPOSE_TAGBITS 0x00000800
 #if defined(__aarch64__)
+DISABLE_HWASAN void fault_address_tag_impl() {
   struct sigaction action = {};
   action.sa_flags = SA_SIGINFO;
   action.sa_sigaction = [](int, siginfo_t* siginfo, void*) {
@@ -273,6 +278,13 @@
     EXPECT_EXIT({ volatile int load __attribute__((unused)) = *tagged_null; },
                 testing::ExitedWithCode(0x2b), "");
   }
+}
+#endif
+
+TEST_F(SigchainTest, fault_address_tag) {
+#define SA_EXPOSE_TAGBITS 0x00000800
+#if defined(__aarch64__)
+  fault_address_tag_impl();
 #else
   GTEST_SKIP() << "arm64 only";
 #endif