summary refs log tree commit diff
path: root/src/rustllvm/README
diff options
context:
space:
mode:
authorAriel Ben-Yehuda <ariel.byd@gmail.com>2016-08-02 00:16:16 +0300
committerAriel Ben-Yehuda <arielb1@mail.tau.ac.il>2016-08-03 15:08:47 +0300
commit696691e3c4f2b3aa02fbd1cc76dc2f7e8a401db8 (patch)
treeb74e88f26e0a6d2f5d3ff114efe34fbd6b805223 /src/rustllvm/README
parent81df89fc2d6ba1b55ab20b0615b8523a6e90963f (diff)
downloadrust-696691e3c4f2b3aa02fbd1cc76dc2f7e8a401db8.tar.gz
rust-696691e3c4f2b3aa02fbd1cc76dc2f7e8a401db8.zip
audit LLVM C++ types in ArchiveWrapper and PassWrapper
Diffstat (limited to 'src/rustllvm/README')
-rw-r--r--src/rustllvm/README14
1 files changed, 14 insertions, 0 deletions
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.