aboutsummaryrefslogtreecommitdiff
path: root/tccasm.c
diff options
context:
space:
mode:
authorgrischka <grischka>2016-10-01 20:26:50 +0200
committergrischka <grischka>2016-10-01 20:26:50 +0200
commit766ba3694dae5b3d2dfbb5c75c4ebf7069a7ce1f (patch)
tree3d056aae41bd651b5c04ba13a5566d03598c477f /tccasm.c
parenteacdc426d76a88aa9b6efc698106d3f36a774905 (diff)
downloadtinycc-766ba3694dae5b3d2dfbb5c75c4ebf7069a7ce1f.tar.gz
tinycc-766ba3694dae5b3d2dfbb5c75c4ebf7069a7ce1f.tar.bz2
tccpp: cleanup
- "utf8 in identifiers" from 936819a1b90f2618bb3f86730189cf2895948ba0 - CValue: remove member str.data_allocated - make tiny allocator private to tccpp - allocate macro_stack objects on heap because otherwise it could crash after error/setjmp in preprocess_delete():end_macro() - mov "TinyAlloc" defs to tccpp.c - define_push: take int* str again
Diffstat (limited to 'tccasm.c')
-rw-r--r--tccasm.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/tccasm.c b/tccasm.c
index 9dcab1c..890956b 100644
--- a/tccasm.c
+++ b/tccasm.c
@@ -488,25 +488,25 @@ static void asm_parse_directive(TCCState *s1)
case TOK_ASMDIR_rept:
{
int repeat;
- TokenString init_str;
+ TokenString *init_str;
ParseState saved_parse_state = {0};
next();
repeat = asm_int_expr(s1);
- tok_str_new(&init_str);
+ init_str = tok_str_alloc();
next();
while ((tok != TOK_ASMDIR_endr) && (tok != CH_EOF)) {
- tok_str_add_tok(&init_str);
+ tok_str_add_tok(init_str);
next();
}
if (tok == CH_EOF) tcc_error("we at end of file, .endr not found");
next();
- tok_str_add(&init_str, -1);
- tok_str_add(&init_str, 0);
+ tok_str_add(init_str, -1);
+ tok_str_add(init_str, 0);
save_parse_state(&saved_parse_state);
- begin_macro(&init_str, 0);
+ begin_macro(init_str, 1);
while (repeat-- > 0) {
tcc_assemble_internal(s1, (parse_flags & PARSE_FLAG_PREPROCESS));
- macro_ptr = init_str.str;
+ macro_ptr = init_str->str;
}
end_macro();
restore_parse_state(&saved_parse_state);