aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-29Use C23 keywords in test dataMichael Forney
2024-03-24decl: Implement GNU packed attributeMichael Forney
Implements: https://todo.sr.ht/~mcf/cproc/72
2024-03-24Fix printf format specifierMichael Forney
2024-03-24decl: Check alignment rangeMichael 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-24attr: Parse some GNU attributesMichael Forney
Implements: https://todo.sr.ht/~mcf/cproc/68
2024-03-24attr: Add support for GNU syntaxMichael Forney
References: https://todo.sr.ht/~mcf/cproc/68
2024-03-24Add support for C23 attribute syntaxMichael Forney
Currently, all attributes are ignored. References: https://todo.sr.ht/~mcf/cproc/68
2024-03-24map: Use separately allocated struct mapMichael Forney
2024-03-23README: Fix issue tracker linkJason Lenz
2024-03-23expr: Keep track of storage duration of compound literalsMichael Forney
2024-03-23CI: Add patch for openbsd to use __builtin_va_list on all compilersMichael Forney
2024-03-23Add test for unreachable statementsMichael Forney
This used to trigger a bug. References: https://todo.sr.ht/~mcf/cproc/80
2024-03-23Add tests for standard enum typesMichael Forney
2024-03-23Change type of u8 string literals to unsigned char for C23Michael Forney
2024-03-23Remove qbe submoduleMichael Forney
2024-03-22CI: Use upstream QBE in Debian aarch64 buildMichael Forney
This was accidentally left as my personal branch when all the other builds were updated.
2024-03-22builds: Use freebsd/latestMichael Forney
2024-03-22Implement C23 nullptr constantMichael Forney
2024-03-22pp: Fix nullptr keywordMichael Forney
2024-03-22doc/c23: Document typeof/typeof_unqualMichael Forney
2024-03-22decl: Implement typeof_unqualMichael Forney
2024-03-22doc/c23: Fix links to enum documentsMichael Forney
2024-03-22doc/extensions: Remove extensions now standardized in C23Michael Forney
2024-03-22Use C23 spelling of typeof in testsMichael Forney
2024-03-21decl: Add support for enums with large values and fixed underlying typesMichael Forney
Fixes: https://todo.sr.ht/~mcf/cproc/64
2024-03-16Store enum underlying type in base fieldMichael 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-16expr: Work around qualified array types for nowMichael Forney
This should be fixed so that array types are never qualified, but for now, just union the array type qualifiers with the element type qualifiers. See issue 79 for more details.
2024-03-16Fix C23 empty initializersMichael 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.
2024-01-26doc/software: Fix double negativeMichael Forney
2023-05-02fix 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-29README.md: Remove outdated note about gmakeJosiah Frentsos
2022-11-29Don't spam mailing list with build failuresMichael Forney
Add a separate list for this.
2022-11-29Implement C23 predefined bool constantsMichael Forney
2022-11-26Check object alignment in only one placeMichael Forney
2022-11-26Move kind-specific decl fields to unionMichael Forney
2022-11-26Keep track of asmname in decl and remove globalname()Michael Forney
2022-11-23Use new spelling of keywords in error messagesMichael Forney
2022-10-30Add cproc(1) manual pageDavid Demelier
2022-08-05expr: Fix constant evaluation of struct member addressMichael Forney
fb00ba6978 had the side-effect of introducing an integer to pointer cast, which was not evaluated as a constant expression. To fix this, just set the type of the expression.
2022-08-05Update qbe submoduleMichael Forney
2022-08-05Use CC=cc with nixosMichael Forney
nixos doesn't have c99.
2022-08-05Add new C23 keywordsMichael Forney
2022-07-12driver: Pass -iquote through to preprocessorMichael Forney
2022-07-12Update CI for new QBE MakefileMichael Forney
2022-06-27qbe: Insert dead block when compiling unreachable code after a jumpMichael Forney
QBE will optimize out these blocks, and the dead block prevents the possibility of NULL value usage when further control flow follows. Fixes #80.
2022-06-13Fix tests for x86_64 -> x86_64-sysv target renameMichael Forney
2022-06-06Rename x86_64 target to include ABIMichael Forney
2022-05-19Add unreachable returns to silence compiler warningsMichael Forney
2022-05-19eval: Fix range check of double during conversion to intMichael Forney
2⁶⁴-1 and 2⁶³-1 are not representable as double and get rounded to 2⁶⁴ and 2⁶³ respectively, which are outside the range of 64-bit [u]int. This causes undefined behavior when a constant expression is evaluated that involves a conversion of a very large or small value to an integer type. To fix this, change the > to >= and use constants representable as double.
2022-05-13expr: Fix qualifiers of base type during implicit array conversionMichael Forney