X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc_codegen_llvm%2Fcontext.rs;h=50a35fe3dcf1db17f988566c0de2b0bc54de926b;hb=88429fb5e250d61e60578e3ed5de4ac2d56567a8;hp=f07601ed383fed42881f83be5ed001d424a3728e;hpb=ebfd8673a791661d9cb526d9994f2f6bbfa49348;p=rust.git diff --git a/src/librustc_codegen_llvm/context.rs b/src/librustc_codegen_llvm/context.rs index f07601ed383..50a35fe3dcf 100644 --- a/src/librustc_codegen_llvm/context.rs +++ b/src/librustc_codegen_llvm/context.rs @@ -143,6 +143,10 @@ fn strip_function_ptr_alignment(data_layout: String) -> String { data_layout.replace("-Fi8-", "-") } +fn strip_x86_address_spaces(data_layout: String) -> String { + data_layout.replace("-p270:32:32-p271:32:32-p272:64:64-", "-") +} + pub unsafe fn create_module( tcx: TyCtxt<'_>, llcx: &'ll llvm::Context, @@ -156,6 +160,11 @@ pub unsafe fn create_module( if llvm_util::get_major_version() < 9 { target_data_layout = strip_function_ptr_alignment(target_data_layout); } + if llvm_util::get_major_version() < 10 { + if sess.target.target.arch == "x86" || sess.target.target.arch == "x86_64" { + target_data_layout = strip_x86_address_spaces(target_data_layout); + } + } // Ensure the data-layout values hardcoded remain the defaults. if sess.target.target.options.is_builtin {