Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-04-20 | Style | Michael Forney | |
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 | decl: Combine typeof and typeof_unqual switch case | 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 | 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 | 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-04 | type: Fix qualifiers of adjusted array types of parameters | Michael Forney | |
2024-04-02 | map: Use simpler fnv-1a hash function | Michael Forney | |
2024-03-24 | decl: Implement GNU packed attribute | Michael Forney | |
Implements: https://todo.sr.ht/~mcf/cproc/72 | |||
2024-03-24 | Fix printf format specifier | Michael Forney | |
2024-03-24 | decl: Check alignment range | Michael Forney | |
We store alignment as int, so check that it fits to avoid implementation-defined behavior. Also, fix printf format specifier and drop unneeded parentheses. | |||
2024-03-24 | attr: Add support for GNU syntax | Michael Forney | |
References: https://todo.sr.ht/~mcf/cproc/68 | |||
2024-03-24 | Add support for C23 attribute syntax | Michael Forney | |
Currently, all attributes are ignored. References: https://todo.sr.ht/~mcf/cproc/68 | |||
2024-03-24 | map: Use separately allocated struct map | Michael Forney | |
2024-03-23 | expr: Keep track of storage duration of compound literals | Michael Forney | |
2024-03-22 | decl: Implement typeof_unqual | Michael Forney | |
2024-03-22 | Use C23 spelling of typeof in tests | Michael Forney | |
2024-03-21 | decl: Add support for enums with large values and fixed underlying types | Michael Forney | |
Fixes: https://todo.sr.ht/~mcf/cproc/64 | |||
2024-03-16 | Store enum underlying type in base field | Michael Forney | |
This will facilitate supporting underlying types other than int or unsigned, possible in C23. References: https://todo.sr.ht/~mcf/cproc/64 | |||
2024-03-16 | Fix C23 empty initializers | Michael Forney | |
These should should act as zero initializers, but since init==NULL was used to mean both "no initializer" and "empty initializer", empty initializers weren't zero-initializing the variable. | |||
2023-05-02 | fix bootstrap by renaming constexpr() | Quentin Carbonneaux | |
The addition of C23 keywords made 'constexpr' unusable as a function name. This prevents cproc from bootstrapping. This patch simply renames the problematic function to 'evalexpr'. | |||
2022-11-26 | Check object alignment in only one place | Michael Forney | |
2022-11-26 | Move kind-specific decl fields to union | Michael Forney | |
2022-11-26 | Keep track of asmname in decl and remove globalname() | Michael Forney | |
2022-11-23 | Use new spelling of keywords in error messages | Michael Forney | |
2022-08-05 | Add new C23 keywords | Michael Forney | |
2022-03-22 | init: Allow empty initializers | Michael Forney | |
2022-03-22 | decl: Style | Michael Forney | |
2022-01-22 | Remove most usage of fixed-width integer types | Michael Forney | |
We only require a type of at least 64 bits, so just use unsigned long long. Only siphash remains as the last user of uint64_t. | |||
2022-01-22 | Remove unused type properties | Michael Forney | |
2022-01-22 | Port to C99 | Michael Forney | |
2021-12-06 | decl: Fix typedefs with type qualifiers | Michael Forney | |
Previously, the qualifiers were saved, but accidentally ignored when the typedef was referenced. | |||
2021-12-06 | decl: Simplify struct size calculation | Michael Forney | |
2021-12-06 | decl: Remove struct member name from error messages | Michael Forney | |
It could be NULL in some cases. | |||
2021-12-06 | decl: Use strictest alignment when multiple specifiers are present | Michael Forney | |
This is specified by the last sentence in C11 6.7.5p6. | |||
2021-12-06 | decl: Enforce that _Alignas is at least as strict as required by type | Michael Forney | |
2021-10-25 | decl: Allow alignment > 16 of locals | Michael Forney | |
This is not yet supported by QBE, so for now we allocate a bit extra and choose the address in the allocated region with an aligned address. | |||
2021-10-25 | decl: Allow alignment > 16 of globals and struct members | Michael Forney | |
2021-10-25 | qbe: Use ... to separate named and variadic arguments | Michael Forney | |
This requires a not-yet-upstream QBE patch, and is needed for riscv64 support, since the calling convention may be different depending on whether the argument is named or variadic. |