X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Frustllvm%2FREADME;h=e1c6dd07d2b3856a5a2050a8551474123f7a56c3;hb=3850d96379126087240b640470632362a5d32234;hp=c0db3f68a76208904fd788122dfc19fdfaccf099;hpb=bd5fd6e42a904723c99383e684ddeaf02f01d972;p=rust.git diff --git a/src/rustllvm/README b/src/rustllvm/README index c0db3f68a76..e1c6dd07d2b 100644 --- a/src/rustllvm/README +++ b/src/rustllvm/README @@ -1,2 +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.