Add LTONotSupported

This commit is contained in:
Ellis Hoag 2022-08-26 20:50:37 -07:00
parent d9aa635969
commit d0b7e71918
3 changed files with 9 additions and 1 deletions

View File

@ -14,6 +14,10 @@ pub(crate) struct LinkageConstOrMutType {
pub span: Span
}
#[derive(SessionDiagnostic)]
#[diag(codegen_gcc::lto_not_supported)]
pub(crate) struct LTONotSupported {}
#[derive(SessionDiagnostic)]
#[diag(codegen_gcc::unwinding_inline_asm)]
pub(crate) struct UnwindingInlineAsm {

View File

@ -61,6 +61,7 @@ mod type_of;
use std::any::Any;
use std::sync::{Arc, Mutex};
use crate::errors::LTONotSupported;
use gccjit::{Context, OptimizationLevel, CType};
use rustc_ast::expand::allocator::AllocatorKind;
use rustc_codegen_ssa::{CodegenResults, CompiledModule, ModuleCodegen};
@ -99,7 +100,7 @@ pub struct GccCodegenBackend {
impl CodegenBackend for GccCodegenBackend {
fn init(&self, sess: &Session) {
if sess.lto() != Lto::No {
sess.warn("LTO is not supported. You may get a linker error.");
sess.emit_warning(LTONotSupported {});
}
let temp_dir = TempDir::new().expect("cannot create temporary directory");

View File

@ -6,3 +6,6 @@ codegen_gcc_linkage_const_or_mut_type =
codegen_gcc_unwinding_inline_asm =
GCC backend does not support unwinding from inline asm
codegen_gcc_lto_not_supported =
LTO is not supported. You may get a linker error.