about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2014-09-27 01:33:36 -0700
committerKeegan McAllister <kmcallister@mozilla.com>2014-09-27 11:10:37 -0700
commit9d60de93e2c5af1b69201b5e3bcf8943ae5df664 (patch)
treeb9e70d905c974cb3d6260867089ef1a13fd26df7 /src/rustllvm/RustWrapper.cpp
parent34dfa45718d9d40361dadf0abf9c3dc5cc0b0381 (diff)
downloadrust-9d60de93e2c5af1b69201b5e3bcf8943ae5df664.tar.gz
rust-9d60de93e2c5af1b69201b5e3bcf8943ae5df664.zip
Translate inline assembly errors back to source locations
Fixes #17552.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 7896ce2ba76..1fdaa548ebe 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -871,3 +871,18 @@ extern "C" void LLVMWriteDebugLocToString(
     raw_rust_string_ostream os(str);
     unwrap(dl)->print(*unwrap(C), os);
 }
+
+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SMDiagnostic, LLVMSMDiagnosticRef)
+
+extern "C" void LLVMSetInlineAsmDiagnosticHandler(
+    LLVMContextRef C,
+    LLVMContext::InlineAsmDiagHandlerTy H,
+    void *CX)
+{
+    unwrap(C)->setInlineAsmDiagnosticHandler(H, CX);
+}
+
+extern "C" void LLVMWriteSMDiagnosticToString(LLVMSMDiagnosticRef d, RustStringRef str) {
+    raw_rust_string_ostream os(str);
+    unwrap(d)->print("", os);
+}