-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add support for __int128
, __int128_t
, __uint128_t
#49
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 long
is already 128 bit on the machine, do we then wantikind
ILongLong
orIInt128
?(This machine-dependent ambiguity is a source of errors if one does not use CIL's functions but assumes e.g.
long long
to be of a certain size - might be better to let CIL just emit concrete int sizes likeint32_t
.)