Fixed that one can compile MariaDB with ASAN with -Wframe-larger-than=16384

Added PRAGMA_DISABLE_CHECK_STACK_FRAME around some functions
This commit is contained in:
Monty 2025-05-28 15:53:58 +03:00
commit f65dda628d
13 changed files with 77 additions and 2 deletions

View file

@ -8600,7 +8600,6 @@ grn_obj_set_info_source_invalid_lexicon_error(grn_ctx *ctx,
source_name_size, source_name);
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
inline static grn_rc
grn_obj_set_info_source_validate(grn_ctx *ctx, grn_obj *obj, grn_obj *value)
@ -8704,6 +8703,8 @@ exit:
return ctx->rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
inline static void
grn_obj_set_info_source_log(grn_ctx *ctx, grn_obj *obj, grn_obj *value)
{

View file

@ -31,6 +31,7 @@
#include "grn_token_cursor.h"
#include "grn_mrb.h"
#include "mrb/mrb_expr.h"
#include "my_attribute.h"
#ifdef GRN_WITH_ONIGMO
# define GRN_SUPPORT_REGEXP
@ -6701,6 +6702,8 @@ grn_table_select_index_range(grn_ctx *ctx, grn_obj *table, grn_obj *index,
}
}
PRAGMA_DISABLE_CHECK_STACK_FRAME
static inline grn_bool
grn_table_select_index(grn_ctx *ctx, grn_obj *table, scan_info *si,
grn_obj *res, grn_id *min_id)
@ -6818,6 +6821,8 @@ grn_table_select_index(grn_ctx *ctx, grn_obj *table, scan_info *si,
return processed;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
grn_obj *
grn_table_select(grn_ctx *ctx, grn_obj *table, grn_obj *expr,
grn_obj *res, grn_operator op)

View file

@ -20,6 +20,7 @@
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
#include <my_attribute.h>
#ifdef WIN32
# include <io.h>
@ -3338,6 +3339,8 @@ fake_map(grn_ctx *ctx, grn_io *io, grn_io_win *iw, void *addr, uint32_t seg, uin
iw->addr = addr;
}
PRAGMA_DISABLE_CHECK_STACK_FRAME
static grn_rc
buffer_flush(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h)
{
@ -3470,6 +3473,8 @@ buffer_flush(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h)
return ctx->rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
void
grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg)
{
@ -3736,6 +3741,8 @@ array_update(grn_ctx *ctx, grn_ii *ii, uint32_t dls, buffer *db)
}
}
PRAGMA_DISABLE_CHECK_STACK_FRAME
static grn_rc
buffer_split(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h)
{
@ -3981,6 +3988,8 @@ buffer_split(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h)
return ctx->rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
#define SCALE_FACTOR 2048
#define MAX_NTERMS 8192
#define SPLIT_COND(ii, buffer)\
@ -4525,6 +4534,8 @@ PRAGMA_DISABLE_CHECK_STACK_FRAME
#define BIT11_01(x) ((x >> 1) & 0x7ff)
#define BIT31_12(x) (x >> 12)
PRAGMA_DISABLE_CHECK_STACK_FRAME
grn_rc
grn_ii_update_one(grn_ctx *ctx, grn_ii *ii, grn_id tid, grn_ii_updspec *u, grn_hash *h)
{
@ -4912,6 +4923,8 @@ exit :
return ctx->rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
#define CHUNK_USED 1
#define BUFFER_USED 2
#define SOLE_DOC_USED 4
@ -6309,6 +6322,8 @@ grn_uvector2updspecs(grn_ctx *ctx, grn_ii *ii, grn_id rid,
}
}
PRAGMA_DISABLE_CHECK_STACK_FRAME
grn_rc
grn_ii_column_update(grn_ctx *ctx, grn_ii *ii, grn_id rid, unsigned int section,
grn_obj *oldvalue, grn_obj *newvalue, grn_obj *posting)
@ -6628,6 +6643,8 @@ exit :
return ctx->rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
/* token_info */
typedef struct {
@ -7931,6 +7948,8 @@ grn_ii_select_cursor_open(grn_ctx *ctx,
return cursor;
}
PRAGMA_DISABLE_CHECK_STACK_FRAME
static grn_ii_select_cursor_posting *
grn_ii_select_cursor_next(grn_ctx *ctx,
grn_ii_select_cursor *cursor)
@ -8098,6 +8117,9 @@ grn_ii_select_cursor_next(grn_ctx *ctx,
}
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
static void
grn_ii_select_cursor_unshift(grn_ctx *ctx,
grn_ii_select_cursor *cursor,
@ -8541,6 +8563,8 @@ grn_ii_select_sequential_search(grn_ctx *ctx,
}
#endif
PRAGMA_DISABLE_CHECK_STACK_FRAME
grn_rc
grn_ii_select(grn_ctx *ctx, grn_ii *ii,
const char *string, unsigned int string_len,
@ -8847,6 +8871,8 @@ exit :
return rc;
}
PRAGMA_REENABLE_CHECK_STACK_FRAME
static uint32_t
grn_ii_estimate_size_for_query_regexp(grn_ctx *ctx, grn_ii *ii,
const char *query, unsigned int query_len,