From 32c3ba3ba51c80d3fa2b4e17c34a621a8532cca0 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 1 Sep 2016 08:41:28 +0300 Subject: [PATCH] lib: If DEBUG is enabled, use a pointer type for data_stack_frame_t This allows telling static analyzers to treat t_push() and t_pop() similarly to malloc()/free() and check for leaks. --- src/lib/data-stack.c | 8 +++++++- src/lib/data-stack.h | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/data-stack.c b/src/lib/data-stack.c index 7e07150230..88939ed7a2 100644 --- a/src/lib/data-stack.c +++ b/src/lib/data-stack.c @@ -67,6 +67,12 @@ struct stack_frame_block { #endif }; +#ifdef DEBUG +struct data_stack_frame { + int dummy; +}; +#endif + data_stack_frame_t data_stack_frame = 0; static bool data_stack_initialized = FALSE; @@ -571,7 +577,7 @@ void data_stack_init(void) return; } data_stack_initialized = TRUE; - data_stack_frame = 1; + data_stack_frame = (data_stack_frame_t)1; outofmem_area.block.size = outofmem_area.block.left = sizeof(outofmem_area) - sizeof(outofmem_area.block); diff --git a/src/lib/data-stack.h b/src/lib/data-stack.h index 6867c08a9a..b15b12dbfc 100644 --- a/src/lib/data-stack.h +++ b/src/lib/data-stack.h @@ -31,7 +31,11 @@ overflows. */ +#ifndef DEBUG typedef unsigned int data_stack_frame_t; +#else +typedef struct data_stack_frame *data_stack_frame_t; +#endif extern data_stack_frame_t data_stack_frame; -- 2.47.3