diff --git a/src/include/c.h b/src/include/c.h index ae978830daf..47b97a9eb73 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -120,6 +120,13 @@ #define pg_attribute_unused() #endif +/* Macro for disabling GCC alignment sanitizer */ +#ifdef __GNUC__ +#define pg_attribute_no_sanitize_alignment() __attribute__((no_sanitize("alignment"))) +#else +#define pg_attribute_no_sanitize_alignment() +#endif + /* * pg_nodiscard means the compiler should warn if the result of a function * call is ignored. The name "nodiscard" is chosen in alignment with diff --git a/src/port/pg_crc32c_sse42.c b/src/port/pg_crc32c_sse42.c index 3b94a7388ab..10fc01e1f06 100644 --- a/src/port/pg_crc32c_sse42.c +++ b/src/port/pg_crc32c_sse42.c @@ -18,6 +18,7 @@ #include "port/pg_crc32c.h" +pg_attribute_no_sanitize_alignment() pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len) {