diff options
author | pommicket <pommicket@gmail.com> | 2022-02-14 22:43:25 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2022-02-14 22:43:25 -0500 |
commit | f7c3154b8a0108ddeecdbd5afc3ac2c99124aab6 (patch) | |
tree | affb47d70d6edb2f75cca5d800baed954fb8d1e1 /05/parse.b | |
parent | 0c5b34b8d082d980f0081ce818befdec46111b0b (diff) |
strtoul, strtol
Diffstat (limited to '05/parse.b')
-rw-r--r-- | 05/parse.b | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -802,7 +802,9 @@ function parse_statement :local_decl_initializer token += 16 - if *1token == SYMBOL_LBRACE goto local_init_lbrace + if *1token == SYMBOL_LBRACE goto local_const_init + if *1token == TOKEN_STRING_LITERAL goto maybe_string_init + :not_string_init n = token_next_semicolon_comma_rbracket(token) out += 24 p = expressions_end @@ -813,7 +815,13 @@ function parse_statement type_decay_array_to_pointer_in_place(*4p) ; fix typing for `int[] x = {5,6}; int *y = x;` token = n goto local_decl_continue - :local_init_lbrace + :maybe_string_init + ; check if we have char x[] = "hello"; or char *x = "hello"; (we'll use parse_constant_initializer for that) + p = token + 16 + if *1p == SYMBOL_SEMICOLON goto local_const_init + if *1p == SYMBOL_COMMA goto local_const_init + goto not_string_init + :local_const_init rwdata_end_addr += 7 rwdata_end_addr >= 3 rwdata_end_addr <= 3 |