0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00

Lib: Use alloc_size() function attribute

This commit is contained in:
Ondrej Zajicek 2024-05-28 16:41:24 +02:00
parent e29f134ad9
commit 2d6fb31cd1
2 changed files with 8 additions and 7 deletions

View File

@ -75,7 +75,8 @@ static inline int u64_cmp(u64 i1, u64 i2)
#define NORET __attribute__((noreturn)) #define NORET __attribute__((noreturn))
#define UNUSED __attribute__((unused)) #define UNUSED __attribute__((unused))
#define PACKED __attribute__((packed)) #define PACKED __attribute__((packed))
#define NONNULL(...) __attribute__((nonnull((__VA_ARGS__)))) #define NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
#define ALLOC_SIZE(...) __attribute__((alloc_size(__VA_ARGS__)))
#define STATIC_ASSERT(EXP) _Static_assert(EXP, #EXP) #define STATIC_ASSERT(EXP) _Static_assert(EXP, #EXP)
#define STATIC_ASSERT_MSG(EXP,MSG) _Static_assert(EXP, MSG) #define STATIC_ASSERT_MSG(EXP,MSG) _Static_assert(EXP, MSG)

View File

@ -57,9 +57,9 @@ extern pool root_pool;
/* Normal memory blocks */ /* Normal memory blocks */
void *mb_alloc(pool *, unsigned size); void *mb_alloc(pool *, unsigned size) ALLOC_SIZE(2);
void *mb_allocz(pool *, unsigned size); void *mb_allocz(pool *, unsigned size) ALLOC_SIZE(2);
void *mb_realloc(void *m, unsigned size); void *mb_realloc(void *m, unsigned size) ALLOC_SIZE(2);
void mb_free(void *); void mb_free(void *);
/* Memory pools with linear allocation */ /* Memory pools with linear allocation */
@ -73,9 +73,9 @@ typedef struct lp_state {
} lp_state; } lp_state;
linpool *lp_new(pool *); linpool *lp_new(pool *);
void *lp_alloc(linpool *, unsigned size); /* Aligned */ void *lp_alloc(linpool *, unsigned size) ALLOC_SIZE(2); /* Aligned */
void *lp_allocu(linpool *, unsigned size); /* Unaligned */ void *lp_allocu(linpool *, unsigned size) ALLOC_SIZE(2); /* Unaligned */
void *lp_allocz(linpool *, unsigned size); /* With clear */ void *lp_allocz(linpool *, unsigned size) ALLOC_SIZE(2); /* With clear */
void lp_flush(linpool *); /* Free everything, but leave linpool */ void lp_flush(linpool *); /* Free everything, but leave linpool */
void lp_save(linpool *m, lp_state *p); /* Save state */ void lp_save(linpool *m, lp_state *p); /* Save state */
void lp_restore(linpool *m, lp_state *p); /* Restore state */ void lp_restore(linpool *m, lp_state *p); /* Restore state */