diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2015-01-22 19:43:39 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2015-01-22 19:43:39 +0100 |
| commit | 4cfb70026c91a338518a17579bcd62a32a0a413d (patch) | |
| tree | 039eace08804cdc2d92819d6aecd2ba083fac1be /src/rustllvm/RustWrapper.cpp | |
| parent | b7930d93d9b57beaeabfeb43cf78fc8161ecd46c (diff) | |
| download | rust-4cfb70026c91a338518a17579bcd62a32a0a413d.tar.gz rust-4cfb70026c91a338518a17579bcd62a32a0a413d.zip | |
Better inline assembly errors
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index bce73a27699..728ff1461fc 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -894,6 +894,22 @@ LLVMUnpackOptimizationDiagnostic( *message_out = wrap(&opt->getMsg()); } +extern "C" void +LLVMUnpackInlineAsmDiagnostic( + LLVMDiagnosticInfoRef di, + unsigned *cookie_out, + LLVMTwineRef *message_out, + LLVMValueRef *instruction_out) +{ + // Undefined to call this not on an inline assembly diagnostic! + llvm::DiagnosticInfoInlineAsm *ia + = static_cast<llvm::DiagnosticInfoInlineAsm*>(unwrap(di)); + + *cookie_out = ia->getLocCookie(); + *message_out = wrap(&ia->getMsgStr()); + *instruction_out = wrap(ia->getInstruction()); +} + extern "C" void LLVMWriteDiagnosticInfoToString(LLVMDiagnosticInfoRef di, RustStringRef str) { raw_rust_string_ostream os(str); DiagnosticPrinterRawOStream dp(os); |
