| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | c: more static initializer fixes | 2025-11-26 | 2 | -7/+9 | ||
| | | ||||||
| * | c: fix elided-braces initializers for nested unions | 2025-11-26 | 1 | -5/+16 | ||
| | | | | | | | | | For example in ```c struct {int a; union { int b,c; }; int d; } X = {1,2,3}; ``` Fields `a`,`b`,`d` must get initialized to 1,2,3. Not `c` | |||||
| * | pp: fix token pasting (hopefully) | 2025-11-24 | 1 | -27/+15 | ||
| | | ||||||
| * | c: fix condexprvalue | 2025-11-24 | 1 | -54/+42 | ||
| | | | | | | The original implementation was broken when presented with nested short-circuiting logical operators. | |||||
| * | c: remove unused function | 2025-11-24 | 1 | -8/+0 | ||
| | | ||||||
| * | c: create dummy unreachable block after trap | 2025-11-24 | 2 | -5/+2 | ||
| | | | | | | | Reverts 9abe27f6712. This simplies expr codegen, otherwise would manually have to check `fn->curblk != NULL` repeatedly. Later passes will easily delete those unreachable blocks | |||||
| * | ir: implement cvtu64f. and other bug fixes | 2025-11-23 | 1 | -1/+4 | ||
| | | | | | | compiler is bootstrapping?! however, stage1 and stage2+ executables aren't bit-identical.. small differences in the codegen.. need to look into that | |||||
| * | c: check actual reachability for non-void func may not return value | 2025-11-23 | 1 | -2/+6 | ||
| | | ||||||
| * | c: implement compound initializer in static context | 2025-11-23 | 1 | -2/+18 | ||
| | | ||||||
| * | lex: TEMP hack: #define __x86_64__ or some system headers break subtly | 2025-11-23 | 1 | -0/+1 | ||
| | | ||||||
| * | c: fix runtime implicit-length array initializer | 2025-11-23 | 1 | -2/+3 | ||
| | | ||||||
| * | c: __builtin_va_copy | 2025-11-23 | 1 | -8/+21 | ||
| | | ||||||
| * | implement float varargs, and some other fixes | 2025-11-23 | 1 | -0/+3 | ||
| | | ||||||
| * | cpp: fix bugs with recursive macro expansion (hopefully) | 2025-11-23 | 2 | -28/+25 | ||
| | | ||||||
| * | cpp: fix ## bug | 2025-11-23 | 1 | -1/+1 | ||
| | | ||||||
| * | c: fix precedence of conditional expression rhs | 2025-11-22 | 1 | -2/+2 | ||
| | | ||||||
| * | c: make the warning for '()' function declarations less strict | 2025-11-22 | 1 | -1/+1 | ||
| | | ||||||
| * | c: fix static eval for address of some array refs | 2025-11-22 | 2 | -2/+7 | ||
| | | ||||||
| * | c: add decl.sym; avoid calling mkhiddensym repeatedly | 2025-11-22 | 2 | -22/+17 | ||
| | | ||||||
| * | c: move warning for extension keyword til after preprocessor | 2025-11-22 | 3 | -4/+12 | ||
| | | ||||||
| * | lex: #include ".." should also look in working directory | 2025-11-22 | 1 | -19/+17 | ||
| | | ||||||
| * | lex: move token data from tmp to glob arena when used in a macro body | 2025-11-22 | 1 | -2/+7 | ||
| | | | | | | | maybe introduce per-macro arenas to tie their lifetimes to that. but most macros have global lifetime (i.e. aren't #undef'd) so there probably wouldn't be much benefit to that | |||||
| * | c: cast should narrow for narrow ints | 2025-11-22 | 1 | -2/+3 | ||
| | | ||||||
| * | amd64/emit: fix REX-requiring 8-bit GPR encoding checking wrong reg | 2025-11-22 | 1 | -0/+2 | ||
| | | ||||||
| * | remove umul | 2025-11-21 | 1 | -2/+2 | ||
| | | ||||||
| * | change op names to match 285063eba44 | 2025-11-21 | 1 | -20/+20 | ||
| | | ||||||
| * | rename IR classes to reflect bitsize | 2025-11-21 | 1 | -16/+16 | ||
| | | ||||||
| * | c: fix conditional expr not converting operands to final type | 2025-11-21 | 1 | -9/+13 | ||
| | | ||||||
| * | cpp: add predefined __antcc__ macro, for debugging | 2025-11-20 | 1 | -0/+1 | ||
| | | ||||||
| * | isel: lower allocas a different way, such that stk address gets materialized ↵ | 2025-11-20 | 1 | -1/+1 | ||
| | | | | | when necesary | |||||
| * | ir: for easier debugging, keep ctype in dats, print as literal when possible | 2025-11-20 | 1 | -1/+1 | ||
| | | ||||||
| * | c: implement ++/-- for bitfields | 2025-11-19 | 1 | -7/+21 | ||
| | | ||||||
| * | c: remove vestigial ins variable | 2025-11-19 | 1 | -93/+88 | ||
| | | ||||||
| * | eval: fix enum edge case | 2025-11-19 | 1 | -2/+2 | ||
| | | ||||||
| * | eval: fix b0c0f2d2d885 for ptr convertible | 2025-11-19 | 1 | -1/+1 | ||
| | | ||||||
| * | debug output to stdout | 2025-11-19 | 1 | -2/+2 | ||
| | | ||||||
| * | eval: only isaddrconst for ptrs | 2025-11-16 | 1 | -1/+1 | ||
| | | ||||||
| * | factor type stuff into type.h | 2025-11-16 | 2 | -0/+2 | ||
| | | ||||||
| * | c: due to __builtin_trap (in the future also things like noreturn function ↵ | 2025-11-15 | 1 | -1/+5 | ||
| | | | | | calls), compileexpr() can terminate current block. add checks for that in callexpr. more are probably needed.. | |||||
| * | c: disallow void arguments | 2025-11-15 | 1 | -1/+3 | ||
| | | ||||||
| * | ir: 'trap' jump; c: __builtin_trap; lex: __has_builtin | 2025-11-15 | 3 | -9/+50 | ||
| | | ||||||
| * | c: forward-declaring function with incomplete type shouldn't error | 2025-11-15 | 1 | -10/+14 | ||
| | | ||||||
| * | preeliminary va_list support | 2025-11-14 | 4 | -168/+346 | ||
| | | ||||||
| * | revert b55005e5c08. correct fix was in c.c | 2025-11-12 | 1 | -1/+0 | ||
| | | ||||||
| * | lex: fix single-line comment eating up preprocessor directive in next line | 2025-11-08 | 1 | -1/+1 | ||
| | | ||||||
| * | lex: #warning and #error | 2025-11-08 | 1 | -2/+13 | ||
| | | ||||||
| * | c: inc/dec ptr should use ptrdiff integer class | 2025-11-07 | 1 | -2/+2 | ||
| | | ||||||
| * | c: fix codegen bug with compound bitfield assignment reusing wrong ↵ | 2025-11-07 | 1 | -4/+7 | ||
| | | | | | intermediate load | |||||
| * | c: do fold conditional exprs | 2025-11-06 | 1 | -1/+16 | ||
| | | ||||||
| * | amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructors | 2025-11-05 | 2 | -89/+115 | ||
| | | ||||||