From 7192614059f6a7bddc5e32df21e5956aa714b820 Mon Sep 17 00:00:00 2001
From: Tristan Partin <tristan@neon.tech>
Date: Mon, 5 Feb 2024 20:21:13 -0600
Subject: [PATCH v2 2/4] Fix stack depth checking with AddressSanitizer enabled

The AddressSanitizer instrumentation caused stack depth checking to
fail.
---
 src/backend/tcop/postgres.c | 4 ++--
 src/include/miscadmin.h     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 1a34bd3715..7cc18dbed9 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -3466,7 +3466,7 @@ ProcessInterrupts(void)
  *
  * Returns the old reference point, if any.
  */
-pg_stack_base_t
+pg_stack_base_t pg_attribute_no_asan
 set_stack_base(void)
 {
 #ifndef HAVE__BUILTIN_FRAME_ADDRESS
@@ -3530,7 +3530,7 @@ check_stack_depth(void)
 	}
 }
 
-bool
+bool pg_attribute_no_asan
 stack_is_too_deep(void)
 {
 	char		stack_top_loc;
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
index 0b01c1f093..538adfe757 100644
--- a/src/include/miscadmin.h
+++ b/src/include/miscadmin.h
@@ -292,10 +292,10 @@ extern PGDLLIMPORT bool VacuumCostActive;
 
 typedef char *pg_stack_base_t;
 
-extern pg_stack_base_t set_stack_base(void);
+extern pg_stack_base_t set_stack_base(void) pg_attribute_no_asan;
 extern void restore_stack_base(pg_stack_base_t base);
 extern void check_stack_depth(void);
-extern bool stack_is_too_deep(void);
+extern bool stack_is_too_deep(void) pg_attribute_no_asan;
 
 /* in tcop/utility.c */
 extern void PreventCommandIfReadOnly(const char *cmdname);
-- 
Tristan Partin
Neon (https://neon.tech)

