Update LLVM and add Unsupported diagnostic
Secure entry functions do not support if arguments are passed on the stack. An "unsupported" diagnostic will be emitted by LLVM if that is the case. This commits adds support in Rust for that diagnostic so that an error will be output if that is the case! Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
This commit is contained in:
parent
511ed9f235
commit
d255d70e7a
4 changed files with 13 additions and 0 deletions
|
@ -344,6 +344,13 @@ unsafe extern "C" fn diagnostic_handler(info: &DiagnosticInfo, user: *mut c_void
|
|||
.expect("non-UTF8 diagnostic");
|
||||
diag_handler.warn(&msg);
|
||||
}
|
||||
llvm::diagnostic::Unsupported(diagnostic_ref) => {
|
||||
let msg = llvm::build_string(|s| {
|
||||
llvm::LLVMRustWriteDiagnosticInfoToString(diagnostic_ref, s)
|
||||
})
|
||||
.expect("non-UTF8 diagnostic");
|
||||
diag_handler.err(&msg);
|
||||
}
|
||||
llvm::diagnostic::UnknownDiagnostic(..) => {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,6 +118,7 @@ pub enum Diagnostic<'ll> {
|
|||
InlineAsm(InlineAsmDiagnostic<'ll>),
|
||||
PGO(&'ll DiagnosticInfo),
|
||||
Linker(&'ll DiagnosticInfo),
|
||||
Unsupported(&'ll DiagnosticInfo),
|
||||
|
||||
/// LLVM has other types that we do not wrap here.
|
||||
UnknownDiagnostic(&'ll DiagnosticInfo),
|
||||
|
@ -159,6 +160,7 @@ impl Diagnostic<'ll> {
|
|||
|
||||
Dk::PGOProfile => PGO(di),
|
||||
Dk::Linker => Linker(di),
|
||||
Dk::Unsupported => Unsupported(di),
|
||||
|
||||
_ => UnknownDiagnostic(di),
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@ pub enum DiagnosticKind {
|
|||
OptimizationFailure,
|
||||
PGOProfile,
|
||||
Linker,
|
||||
Unsupported,
|
||||
}
|
||||
|
||||
/// LLVMRustDiagnosticLevel
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue