diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-14 23:09:16 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-17 00:27:28 +0900 |
| commit | fda0d40f4d353ce91592b9a1526cb463a279b6f8 (patch) | |
| tree | bc207f8476a5af35ded565bbe45e97d2042e8f65 | |
| parent | 34c0d53cdfae632796866fd3884357c8237cdeab (diff) | |
| download | ducc-fda0d40f4d353ce91592b9a1526cb463a279b6f8.tar.gz ducc-fda0d40f4d353ce91592b9a1526cb463a279b6f8.tar.zst ducc-fda0d40f4d353ce91592b9a1526cb463a279b6f8.zip | |
feat: define __INT_MAX__ as predefined macro
| -rw-r--r-- | src/preprocess.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/preprocess.c b/src/preprocess.c index 56c775d..268147e 100644 --- a/src/preprocess.c +++ b/src/preprocess.c @@ -77,14 +77,14 @@ static Macro* macros_push_new(MacroArray* macros) { return ¯os->data[macros->len++]; } -static void define_macro_to_1(MacroArray* macros, const char* name) { +static void define_macro_to_number(MacroArray* macros, const char* name, int n) { Macro* m = macros_push_new(macros); m->kind = MacroKind_obj; m->name = name; tokens_init(&m->replacements, 1); Token* tok = tokens_push_new(&m->replacements); tok->kind = TokenKind_literal_int; - tok->value.integer = 1; + tok->value.integer = n; } static void add_predefined_macros(MacroArray* macros) { @@ -99,9 +99,12 @@ static void add_predefined_macros(MacroArray* macros) { m->name = "__LINE__"; // Non-standard pre-defined macros. - define_macro_to_1(macros, "__ducc__"); - define_macro_to_1(macros, "__x86_64__"); - define_macro_to_1(macros, "__LP64__"); + define_macro_to_number(macros, "__ducc__", 1); + define_macro_to_number(macros, "__x86_64__", 1); + define_macro_to_number(macros, "__LP64__", 1); + + // glibc defines INT_MAX by using this macro. + define_macro_to_number(macros, "__INT_MAX__", 0x7fffffff); } // Accept "FOO" or "FOO=value" |
