MCPcopy Create free account
hub / github.com/apache/cloudberry / set_stack_base

Function set_stack_base

src/backend/tcop/postgres.c:4398–4428  ·  view source on GitHub ↗

* set_stack_base: set up reference point for stack depth checking * * Returns the old reference point, if any. */

Source from the content-addressed store, hash-verified

4396 * Returns the old reference point, if any.
4397 */
4398pg_stack_base_t
4399set_stack_base(void)
4400{
4401#ifndef HAVE__BUILTIN_FRAME_ADDRESS
4402 char stack_base;
4403#endif
4404 pg_stack_base_t old;
4405
4406#if defined(__ia64__) || defined(__ia64)
4407 old.stack_base_ptr = stack_base_ptr;
4408 old.register_stack_base_ptr = register_stack_base_ptr;
4409#else
4410 old = stack_base_ptr;
4411#endif
4412
4413 /*
4414 * Set up reference point for stack depth checking. On recent gcc we use
4415 * __builtin_frame_address() to avoid a warning about storing a local
4416 * variable's address in a long-lived variable.
4417 */
4418#ifdef HAVE__BUILTIN_FRAME_ADDRESS
4419 stack_base_ptr = __builtin_frame_address(0);
4420#else
4421 stack_base_ptr = &stack_base;
4422#endif
4423#if defined(__ia64__) || defined(__ia64)
4424 register_stack_base_ptr = ia64_get_bsp();
4425#endif
4426
4427 return old;
4428}
4429
4430/*
4431 * restore_stack_base: restore reference point for stack depth checking

Callers 2

InitPostmasterChildFunction · 0.85
PostmasterMainFunction · 0.85

Calls 1

ia64_get_bspFunction · 0.85

Tested by

no test coverage detected