1, self compile: ../lex/scf_macro_expr.c & ../lex/scf_lex_util.c ok,
authoryu.dongliang <18588496441@163.com>
Fri, 11 Sep 2026 14:08:31 +0000 (22:08 +0800)
committeryu.dongliang <18588496441@163.com>
Fri, 11 Sep 2026 14:09:13 +0000 (22:09 +0800)
commit495512037313365e9b5d16e39f133ed6bdf1cb01
tree24a2a717015b33de724e73de88755a30651ff9c3
parenteff5cafdf09f70ed0303e3b0f1c7fa5d6e3e841f
1, self compile: ../lex/scf_macro_expr.c & ../lex/scf_lex_util.c ok,
2, support xor operator ^,
3, fix: core dump caused by 'empty 3ac code list' of some basic block, in x64_bb_load_dn2(),
4, fix: parse error of complex expr at Line:657 of __macro_if_expr(),
5, fix: array init when index is a const enum, in _data_action_index(),

6, fix: self compile for __use_macro() in ../lex/scf_macro.c, failed source code like below:

    if ((ret = scf_string_cat(s0, s1)) && (ret = scf_string_cat(s0, s2)) ) {
            // ...
    }

7, fix: wild pointer when 'do-while' with a complex condtion expr & followed by a 'if-else',
    source code like below:

    int c = '0';
    do {
    } while ('a' <= c && 'z' >= c);

    int type = 1;
    if (type < 0)
            return 1;
45 files changed:
asm/Makefile
asm/scf_asm.c
asm/scf_asm.h
asm/scf_dfa_naja.c
asm/scf_dfa_x64.c
core/scf_3ac.c
core/scf_calculate.c
core/scf_calculate_i32.c
core/scf_calculate_i64.c
core/scf_calculate_u32.c
core/scf_calculate_u64.c
core/scf_core_types.h
core/scf_lex_word.h
core/scf_node.h
core/scf_operator.c
core/scf_operator_dag.c
core/scf_operator_handler_3ac.c
core/scf_optimizer.c
core/scf_optimizer_loop.c
core/scf_optimizer_vla.c [deleted file]
lex/scf_lex.c
lex/scf_lex.h
lex/scf_macro.c
lex/scf_macro_expr.c
native/risc/scf_risc_opcode.h
native/x64/scf_x64_bb_color.c
native/x64/scf_x64_inst.c
native/x64/scf_x64_inst_common.c
native/x64/scf_x64_inst_pic.c [new file with mode: 0644]
native/x64/scf_x64_inst_util.c
native/x64/scf_x64_opcode.c
native/x64/scf_x64_opcode.h
native/x64/scf_x64_rcg.c
parse/Makefile
parse/main.c
parse/scf_dfa_call.c
parse/scf_dfa_expr.c
parse/scf_dfa_function.c
parse/scf_dfa_include.c
parse/scf_dfa_init_data.c
parse/scf_dfa_sizeof.c
parse/scf_operator_handler_const.c
parse/scf_operator_handler_semantic.c
parse/scf_parse.c
parse/scf_parse.h