aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c_type.c
Commit message (Collapse)AuthorAgeFilesLines
* c: fix some compatible type declarationslemon13 days1-1/+67
| | | | | | | | | | | When K&R prototypes are present, definition of compatible types and composite types becomes recursive. For example `int f(int (*)())` should be compatible with `int f(int (*)(int))` etc
* C99 complex types MVPlemon2026-04-131-2/+36
| | | | | | | | | Missing: static eval of complex values, Silly inefficient implementation of equality comparisons between them The whole thing is pretty inefficient without proper aggregate mem2reg anyway
* frontend: accept zero size arrays and empty aggregateslemon2026-04-131-5/+15
| | | | | | GNU extension. Previously was overloading arraylength==0 to mean unsized array, now they are distinct with the type flag TFUNKNOWN marking unsized arrays & aggregates.
* c: remove inline 'backing' type tag for enumslemon2026-03-231-1/+1
| | | | | | | | | | It was meant as a micro-optimization but actually keeping it in sync was annoying. This for example was broken: ``` extern enum foo { ... } g_foo; enum foo g_foo; ```
* Rework handling of predefined macros.lemon2026-03-211-5/+26
| | | | And add some GCC predefs like __SIZE_TYPE__, __LONG_SIZE__, etc
* Refactor: use typedefs and CamelCase for aggregate typeslemon2026-03-181-34/+34
| | | | Looks nicer
* Refactor: move some utils from antcc.h to their own headerslemon2026-03-171-0/+1
|
* REFACTOR: finish renaminglemon2026-03-171-1/+1
|
* REFACTOR: move sources to src/lemon2026-03-171-0/+311