aboutsummaryrefslogtreecommitdiffhomepage
path: root/preprocess.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-13 01:14:35 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:06:21 +0900
commit15c8a2f45b3916f840665b317afb344cbc08f5a4 (patch)
tree77cfd6866c5100f836adfee8603c122aefaf21b0 /preprocess.c
parent9c12de31ab03385cea3b7bc78582ef4fdb9b22cc (diff)
downloadducc-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.c10
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) {