diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-08-13 01:14:35 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:06:21 +0900 |
| commit | 15c8a2f45b3916f840665b317afb344cbc08f5a4 (patch) | |
| tree | 77cfd6866c5100f836adfee8603c122aefaf21b0 /preprocess.c | |
| parent | 9c12de31ab03385cea3b7bc78582ef4fdb9b22cc (diff) | |
| download | ducc-15c8a2f45b3916f840665b317afb344cbc08f5a4.tar.gz ducc-15c8a2f45b3916f840665b317afb344cbc08f5a4.tar.zst ducc-15c8a2f45b3916f840665b317afb344cbc08f5a4.zip | |
feat: implement block-based variable scope
Diffstat (limited to 'preprocess.c')
| -rw-r--r-- | preprocess.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/preprocess.c b/preprocess.c index b097bfb..f11bde2 100644 --- a/preprocess.c +++ b/preprocess.c @@ -922,7 +922,6 @@ Token* process_include_directive(Preprocessor* pp, Token* tok, Token* tok2) { Token* process_define_directive(Preprocessor* pp, Token* tok, Token* tok2) { Token* tok3 = NULL; PpMacro* pp_macro; - int i; ++tok2; tok2 = skip_whitespace(tok2); if (tok2->kind != TokenKind_ident) { @@ -948,7 +947,7 @@ Token* process_define_directive(Preprocessor* pp, Token* tok, Token* tok2) { pp_macro->name = macro_name->raw; pp_macro->n_replacements = tok3 - tok2; pp_macro->replacements = calloc(pp_macro->n_replacements, sizeof(Token)); - for (i = 0; i < pp_macro->n_replacements; ++i) { + for (int i = 0; i < pp_macro->n_replacements; ++i) { pp_macro->replacements[i] = tok2[i]; } } else { @@ -961,7 +960,7 @@ Token* process_define_directive(Preprocessor* pp, Token* tok, Token* tok2) { pp_macro->name = macro_name->raw; pp_macro->n_replacements = tok3 - tok2; pp_macro->replacements = calloc(pp_macro->n_replacements, sizeof(Token)); - for (i = 0; i < pp_macro->n_replacements; ++i) { + for (int i = 0; i < pp_macro->n_replacements; ++i) { pp_macro->replacements[i] = tok2[i]; } } @@ -1001,20 +1000,19 @@ BOOL expand_macro(Preprocessor* pp, Token* tok) { return FALSE; } - int i; SourceLocation original_loc = tok->loc; PpMacro* pp_macro = pp->pp_macros->data + pp_macro_idx; if (pp_macro->kind == PpMacroKind_func) { // also consume '(' and ')' replace_pp_tokens(pp, tok, tok + 3, pp_macro->n_replacements, pp_macro->replacements); // Inherit a source location from the original macro token. - for (i = 0; i < pp_macro->n_replacements; ++i) { + for (int i = 0; i < pp_macro->n_replacements; ++i) { tok[i].loc = original_loc; } } else if (pp_macro->kind == PpMacroKind_obj) { replace_pp_tokens(pp, tok, tok + 1, pp_macro->n_replacements, pp_macro->replacements); // Inherit a source location from the original macro token. - for (i = 0; i < pp_macro->n_replacements; ++i) { + for (int i = 0; i < pp_macro->n_replacements; ++i) { tok[i].loc = original_loc; } } else if (pp_macro->kind == PpMacroKind_builtin_file) { |
