- 
                Notifications
    You must be signed in to change notification settings 
- Fork 279
Known Limitations of Translation
        Alec Theriault edited this page Apr 26, 2018 
        ·
        19 revisions
      
    This document is to track things that we know the translator can't handle, as well as things it probably won't ever handle.
- 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, see https://github.com/GaloisInc/C2Rust/issues/17)
- GNU packed structs (Rust has #[repr(packed)]compatible with#[repr(C)])
- 
inlinefunctions (Rust has#[inline])
- 
restrictpointers (Rust has references)
- inline assembly (see https://github.com/GaloisInc/C2Rust/issues/96)
- macros (see https://github.com/GaloisInc/C2Rust/issues/9)
- 
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 has to be through the usual fall-through evaluation of the expression.