| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Yes, I've ran into code with structures with fields past the 16 bit
range.
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
GNU extension. Previously was overloading arraylength==0 to mean unsized
array, now they are distinct with the type flag TFUNKNOWN marking
unsized arrays & aggregates.
|
| |
|
|
|
|
|
|
|
|
| |
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;
```
|
| |
|
|
|
| |
Is much nicer. I don't know whether I want to do it for the other int
types too. char and uchar are fine as bytes. u/short -> u/s16int, maybe.
|
| |
|
|
| |
And add some GCC predefs like __SIZE_TYPE__, __LONG_SIZE__, etc
|
| | |
|
| |
|
|
| |
Looks nicer
|
| | |
|
| |
|