Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-04-27 | Store enum constant value in struct decl | Michael Forney | |
2024-04-27 | Implement variable length arrays | Nihal Jere | |
Variably modified types are required for C23. Since QBE doesn't currently support saving and restoring the stack pointer, a current limitation is that we can't reclaim stack space from VLAs that go out of scope. This is potentially problematic for VLAs appearing in a loop, but this case is uncommon enough that it is silently ignored for now. Implements: https://todo.sr.ht/~mcf/cproc/1 References: https://todo.sr.ht/~mcf/cproc/88 Co-authored-by: Michael Forney <mforney@mforney.org> | |||
2024-04-27 | qbe: Add extra size for strict alignment with QBE instruction | Michael Forney | |
With upcoming VLA support, the size might not be constant. | |||
2024-04-27 | qbe: Temporarily set func->end = func->start in funcalloc | Michael Forney | |
This way way can just use funcinst. | |||
2024-04-27 | Use hlt to implement noreturn | Michael Forney | |
2024-04-27 | expr: Collapse *& when parsing | Michael Forney | |
2024-04-27 | qbe: Use expression type when loading | Michael Forney | |
If we are loading the first element of an array, or first member of a structure, the expression type may be different from the object type. | |||
2024-04-26 | decl: Move isnoreturn to struct decl | Michael Forney | |
It is a property of the declaration, not the type. | |||
2024-04-23 | configure: Set DEFAULT_DYNAMIC_LINKER for riscv64-linux-gnu | Michael Forney | |
2024-04-22 | README: Add riscv64 to supported targets | Michael Forney | |
2024-04-21 | CI: Add debian-riscv64 builder | Michael Forney | |
2024-04-21 | CI: Simplify alpine-aarch64.yml and debian-aarch64.yml | Michael Forney | |
2024-04-21 | CI: Remove obsolete workaround for qemu-binfmt bug | Michael Forney | |
2024-04-21 | CI: Add alpine-riscv64 builder | Michael Forney | |
2024-04-21 | expr: Create decl for compound literal during parse | Michael Forney | |
2024-04-20 | Style | Michael Forney | |
2024-04-20 | qbe: Track 'thread' prefix in value kind | Michael Forney | |
Adding a bool field increases the size of struct value by 8 due to alignment. In the future, maybe we just use something like VALUE_DECL instead. | |||
2024-04-20 | qbe: Disallow address of TLS variables in static initializers | Michael Forney | |
The address of an object with thread storage duration is not an address constant. | |||
2024-04-20 | qbe: Pass struct decl to mkglobal instead of fields from the decl | Michael Forney | |
2024-04-20 | decl: Keep track of storage duration in struct decl | Michael Forney | |
2024-04-19 | decl: Help gcc see that variable is not used uninitialized | Michael Forney | |
2024-04-19 | implement _Thread_local storage class | Drew DeVault | |
Implements: https://todo.sr.ht/~mcf/cproc/8 | |||
2024-04-16 | test: Add test for compatible array types | Michael Forney | |
2024-04-16 | decl: Combine typeof and typeof_unqual switch case | Michael Forney | |
2024-04-16 | qbe: Clarify comment | Michael Forney | |
2024-04-15 | README: Remove mention of trigraphs (they were removed in C23) | Michael Forney | |
2024-04-15 | decl: Support variadic functions with no other parameters | Michael Forney | |
2024-04-15 | decl: Save and re-open parameter scope for body | Michael Forney | |
2024-04-15 | Remove support for non-prototype function declarations and definitions | Michael Forney | |
These were removed in C23. | |||
2024-04-15 | decl: Improve check for function prototype consisting of only 'void' | Michael Forney | |
2024-04-13 | decl: Include offending struct member in error messages | Michael Forney | |
2024-04-12 | README: Update builds.sr.ht badge to only consider master branch | Michael Forney | |
2024-04-12 | Use struct decl for function parameters | Michael Forney | |
2024-04-12 | decl: Add name field to decl struct | Michael Forney | |
2024-04-12 | decl: Use singly-linked list for tentative definitions | Michael Forney | |
2024-04-08 | expr: Remove evalexpr() and just use condexpr() with eval() | Michael Forney | |
evalexpr() was originally named `constexpr`, since it matched the constant-expression rule in the grammar. It had to be renamed due to conflict with the C23 constexpr keyword. However, since 2e3ecc70, eval has just one argument, so just call eval(condexpr()) directly. | |||
2024-04-07 | Store length expression in array types | Michael Forney | |
We don't need the length constant anymore, so just use that name for the length expression. References: https://todo.sr.ht/~mcf/cproc/1 | |||
2024-04-07 | eval: Use enum instead of define for float/signed flags | Michael Forney | |
2024-04-07 | decl: Remove unsufficient attempt to push qualifiers to array element type | Michael Forney | |
There may be multiple nested array types, so this doesn't work in general. References: https://todo.sr.ht/~mcf/cproc/79 | |||
2024-04-07 | init: Remove use of u.array.length | Michael Forney | |
Instead, keep track of index offset. | |||
2024-04-06 | Remove some unnecessary use of array type length | Michael Forney | |
2024-04-06 | expr: Check that _Generic association type has complete object type | Michael Forney | |
2024-04-04 | test: Use C23 keywords in test data | Michael Forney | |
Apparently 8120240c1f missed some. | |||
2024-04-04 | type: Fix qualifiers of adjusted array types of parameters | Michael Forney | |
2024-04-03 | LICENSE: Update copyright year | Michael Forney | |
2024-04-03 | expr: Help gcc see that variables aren't used uninitialized | Michael Forney | |
2024-04-03 | Use 'bool' in headers instead of '_Bool' | Michael Forney | |
_Bool is deprecated in C23, and using it breaks bootstrap with implementations that don't fully support C99 and define bool to some other type in stdbool.h. | |||
2024-04-02 | map: Use simpler fnv-1a hash function | Michael Forney | |
2024-03-29 | Use C23 keywords in test data | Michael Forney | |
2024-03-24 | decl: Implement GNU packed attribute | Michael Forney | |
Implements: https://todo.sr.ht/~mcf/cproc/72 |