cleaned leakage

This commit is contained in:
anon 2024-07-05 09:05:51 +02:00
parent 4d7b1b3924
commit d7d4630ca4
3 changed files with 9 additions and 14 deletions

View File

@ -13,7 +13,7 @@ endif
ifeq ($(SAN), 1)
CFLAGS += -fsanitize=address,undefined
else
WRAP := valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all
WRAP := valgrind --show-error-list=yes --track-origins=yes --leak-check=full --show-leak-kinds=all
endif
CFLAGS += -Wall -Wextra -Wpedantic

View File

@ -100,17 +100,16 @@ u64{wsnl}+ { return U64; }
BEGIN INITIAL;
yylval.strval = strdup(string_literal_buffer);
puts(string_literal_buffer);
return LITERAL;
return STRING_LITERAL;
}
. {
string_litral_buffer_size += yyleng;
if (string_litral_buffer_size > string_litral_buffer_capacity) {
if (string_litral_buffer_size + yyleng > string_litral_buffer_capacity) {
string_litral_buffer_capacity *= 2;
void * ignore = realloc(string_literal_buffer, string_litral_buffer_capacity);
(void)ignore;
}
memcpy(string_literal_buffer + string_litral_buffer_size, yytext, yyleng);
puts(string_literal_buffer);
string_litral_buffer_size += yyleng;
}
}
@ -155,16 +154,11 @@ void set_state(int state) {
}
void yyfree_leftovers(void) {
// XXX: wip
for (size_t i = 0; i < yy_buffer_stack_max; i++) {
free(yy_buffer_stack[i]);
}
//yy_delete_buffer(b);
if (yyin) {
fclose(yyin);
}
yylex_destroy();
free(string_literal_buffer);
}

View File

@ -138,9 +138,9 @@ code: %empty
| BREAK code
| TXOR register register code { /* assemble_xor(size_64b, type_register_register, $2, $3); */ }
| TXOR register immediate code { /* assemble_xor(size_64b, type_register_register, $2, $3); */ }
| TXOR IDENTIFIER register code { /* assemble_xor(size_64b, type_register_register, $2, $3); */ }
| TXOR IDENTIFIER register code { /* assemble_xor(size_64b, type_register_register, $2, $3); */ free($2); }
| TINC register code
| TINC IDENTIFIER code
| TINC IDENTIFIER code { free($2); }
;
loop: TLOOP code END_LOOP
@ -160,6 +160,7 @@ calltype: FASTCALL
arguments: %empty
| IDENTIFIER arguments { free($1); }
| STRING_LITERAL arguments { free($1); }
| register arguments
| immediate arguments
;