@@ -34,7 +34,6 @@ use smallvec::SmallVec;
3434
3535use crate :: back:: write:: to_llvm_code_model;
3636use crate :: callee:: get_fn;
37- use crate :: common:: AsCCharPtr ;
3837use crate :: debuginfo:: metadata:: apply_vcall_visibility_metadata;
3938use crate :: llvm:: Metadata ;
4039use crate :: type_:: Type ;
@@ -169,6 +168,8 @@ pub(crate) unsafe fn create_module<'ll>(
169168 let mod_name = SmallCStr :: new ( mod_name) ;
170169 let llmod = unsafe { llvm:: LLVMModuleCreateWithNameInContext ( mod_name. as_ptr ( ) , llcx) } ;
171170
171+ let cx = SimpleCx :: new ( llmod, llcx, tcx. data_layout . pointer_size ( ) ) ;
172+
172173 let mut target_data_layout = sess. target . data_layout . to_string ( ) ;
173174 let llvm_version = llvm_util:: get_version ( ) ;
174175
@@ -474,18 +475,13 @@ pub(crate) unsafe fn create_module<'ll>(
474475 let rustc_producer =
475476 format ! ( "rustc version {}" , option_env!( "CFG_VERSION" ) . expect( "CFG_VERSION" ) ) ;
476477
477- let name_metadata = unsafe {
478- llvm:: LLVMMDStringInContext2 (
479- llcx,
480- rustc_producer. as_c_char_ptr ( ) ,
481- rustc_producer. as_bytes ( ) . len ( ) ,
482- )
483- } ;
478+ let name_metadata = cx. create_metadata ( rustc_producer) ;
479+
484480 unsafe {
485481 llvm:: LLVMAddNamedMetadataOperand (
486482 llmod,
487483 c"llvm.ident" . as_ptr ( ) ,
488- & llvm :: LLVMMetadataAsValue ( llcx , llvm:: LLVMMDNodeInContext2 ( llcx, & name_metadata, 1 ) ) ,
484+ & cx . get_metadata_value ( llvm:: LLVMMDNodeInContext2 ( llcx, & name_metadata, 1 ) ) ,
489485 ) ;
490486 }
491487
0 commit comments