X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Frustllvm%2FREADME;h=e1c6dd07d2b3856a5a2050a8551474123f7a56c3;hb=3850d96379126087240b640470632362a5d32234;hp=31495f22c0a5044d3db2c95b567cafd4542c53c8;hpb=7ac885ee8cb18fc2cb974cff06190532680cf29b;p=rust.git diff --git a/src/rustllvm/README b/src/rustllvm/README index 31495f22c0a..e1c6dd07d2b 100644 --- a/src/rustllvm/README +++ b/src/rustllvm/README @@ -1,3 +1,16 @@ This directory currently contains some LLVM support code. This will generally be sent upstream to LLVM in time; for now it lives here. +NOTE: the LLVM C++ ABI is subject to between-version breakage and must *never* +be exposed to Rust. To allow for easy auditing of that, all Rust-exposed types +must be typedef-ed as "LLVMXyz", or "LLVMRustXyz" if they were defined here. + +Functions that return a failure status and leave the error in +the LLVM last error should return an LLVMRustResult rather than an +int or anything to avoid confusion. + +When translating enums, add a single `Other` variant as the first +one to allow for new variants to be added. It should abort when used +as an input. + +All other types must not be typedef-ed as such.