Conversation
Fixes 'Error: Invalid combination of type specifiers' for __int128.
TODO: still fails for any type starting with __ in structs:
~~~c
struct __darwin_arm_neon_state64
{
int foo; // works
__uint32_t __fpsr; // Parse error
}
~~~
|
Works as intended. The |
|
In particular, Nim generated C uses |
|
Mh, the lexer/parser is a bit hard to understand. I just wanted to return two tokens Line 959 in 7a912dd @MaskRay For now you can use the option |
|
Added them as built-in named types on init and handled in cabs2cil. Should be fine to merge now. |
__int128, __int128_t, __uint128_t
Closes #41.
I left some TODOs where I wasn't sure.
Esp. if
long longis already 128 bit on the machine, do we then wantikindILongLongorIInt128?(This machine-dependent ambiguity is a source of errors if one does not use CIL's functions but assumes e.g.
long longto be of a certain size - might be better to let CIL just emit concrete int sizes likeint32_t.)