Andres Freund <[email protected]> writes:
> The reason for that breakage is that with the stack-use-after-return logic,
> stack variables are moved to heap allocations, to allow to detect references
> to the memory at a later time. That breaks our stack-depth check, which is why
> we had to disable detect_stack_use_after_return in CI. Luckily
> __builtin_frame_address() works correctly, even under asan, so use that.
> I think we should backpatch this. I'd be worried about using
> __builtin_frame_address(), but we already do, for the base address of the
> stack.
+1. It was a little weird that we adopted __builtin_frame_address()
to measure the location of the stack bottom but not the stack top.
So I think this is good cleanup even if ASAN weren't forcing it.
I might write the comments a bit differently, in particular I suggest
changing
- * Compute distance from reference point to my local variables
+ * Compute distance from reference point to my stack frame
regards, tom lane