Luma 0.1.0
A low-level compiled alternative to C, C++, and more!
Loading...
Searching...
No Matches
Functions
static_mem_tracker.c File Reference
#include "../c_libs/error/error.h"
#include "type.h"
#include <stdio.h>
#include <string.h>
Include dependency graph for static_mem_tracker.c:

Functions

void static_memory_analyzer_init (StaticMemoryAnalyzer *analyzer, ArenaAllocator *arena)
 
void static_memory_track_alloc (StaticMemoryAnalyzer *analyzer, size_t line, size_t column, const char *var_name, const char *function_name, Token *tokens, size_t token_count, const char *file_path)
 
void static_memory_check_free_nonalloc (StaticMemoryAnalyzer *analyzer, const char *var_name, size_t line, size_t column, Token *tokens, int token_count, const char *file_path, const char *function_name, ArenaAllocator *arena)
 
void static_memory_track_free (StaticMemoryAnalyzer *analyzer, const char *var_name, const char *function_name, bool is_conditional)
 
bool static_memory_check_use_after_free (StaticMemoryAnalyzer *analyzer, const char *var_name, size_t line, size_t column, ArenaAllocator *arena, Token *tokens, int token_count, const char *file_path, const char *function_name)
 
void static_memory_track_alias (StaticMemoryAnalyzer *analyzer, const char *new_var, const char *source_var, const char *function_name)
 
StaticMemoryAnalyzerget_static_analyzer (Scope *scope)
 
void static_memory_mark_addr_taken (StaticMemoryAnalyzer *analyzer, const char *var_name, const char *function_name)
 
int static_memory_check_and_report (StaticMemoryAnalyzer *analyzer, ArenaAllocator *arena)
 

Function Documentation

◆ get_static_analyzer()

StaticMemoryAnalyzer * get_static_analyzer ( Scope scope)

◆ static_memory_analyzer_init()

void static_memory_analyzer_init ( StaticMemoryAnalyzer analyzer,
ArenaAllocator arena 
)

◆ static_memory_check_and_report()

int static_memory_check_and_report ( StaticMemoryAnalyzer analyzer,
ArenaAllocator arena 
)

◆ static_memory_check_free_nonalloc()

void static_memory_check_free_nonalloc ( StaticMemoryAnalyzer analyzer,
const char *  var_name,
size_t  line,
size_t  column,
Token tokens,
int  token_count,
const char *  file_path,
const char *  function_name,
ArenaAllocator arena 
)

◆ static_memory_check_use_after_free()

bool static_memory_check_use_after_free ( StaticMemoryAnalyzer analyzer,
const char *  var_name,
size_t  line,
size_t  column,
ArenaAllocator arena,
Token tokens,
int  token_count,
const char *  file_path,
const char *  function_name 
)

◆ static_memory_mark_addr_taken()

void static_memory_mark_addr_taken ( StaticMemoryAnalyzer analyzer,
const char *  var_name,
const char *  function_name 
)

◆ static_memory_track_alias()

void static_memory_track_alias ( StaticMemoryAnalyzer analyzer,
const char *  new_var,
const char *  source_var,
const char *  function_name 
)

◆ static_memory_track_alloc()

void static_memory_track_alloc ( StaticMemoryAnalyzer analyzer,
size_t  line,
size_t  column,
const char *  var_name,
const char *  function_name,
Token tokens,
size_t  token_count,
const char *  file_path 
)

◆ static_memory_track_free()

void static_memory_track_free ( StaticMemoryAnalyzer analyzer,
const char *  var_name,
const char *  function_name,
bool  is_conditional 
)