Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upKnown Limitations of Translation
This document is to track things that we know the translator can't handle, as well as things it probably won't ever handle.
Unimplemented
- bitfields
- variadic function definitions (blocked by Rust language)
- some static initializers (blocked by Rust language)
- preserving comments
-
long doubleand_Complextypes (partially blocked by Rust language)
Unimplemented, might be implementable but very low priority
- GNU packed structs (Rust has
#[repr(packed)]compatible with#[repr(C)]) -
inlinefunctions (Rust has#[inline]) -
restrictpointers (Rust has references) - inline assembly
- macros
- SIMD/vector types
Likely won't ever support
-
longjmp/setjmpAlthough there are LLVM intrinsics for these, it is unclear how these interact with Rust (esp. idiomatic Rust). - jumps into and out of statement expressions We support GNU C statement expressions, but we can not handle jumping into or out of these. Both entry and exit into the expression have to be through the usual fall-through evaluation of the expression.
Press h to open a hovercard with more details.