@@ -8,7 +8,6 @@ use crate::llvm_util;
88use crate :: type_:: Type ;
99use crate :: value:: Value ;
1010
11- use cstr:: cstr;
1211use rustc_codegen_ssa:: base:: { wants_msvc_seh, wants_wasm_eh} ;
1312use rustc_codegen_ssa:: errors as ssa_errors;
1413use rustc_codegen_ssa:: traits:: * ;
@@ -215,13 +214,13 @@ pub unsafe fn create_module<'ll>(
215214 // If skipping the PLT is enabled, we need to add some module metadata
216215 // to ensure intrinsic calls don't use it.
217216 if !sess. needs_plt ( ) {
218- let avoid_plt = "RtLibUseGOT\0 " . as_ptr ( ) . cast ( ) ;
217+ let avoid_plt = c "RtLibUseGOT". as_ptr ( ) . cast ( ) ;
219218 llvm:: LLVMRustAddModuleFlag ( llmod, llvm:: LLVMModFlagBehavior :: Warning , avoid_plt, 1 ) ;
220219 }
221220
222221 // Enable canonical jump tables if CFI is enabled. (See https://reviews.llvm.org/D65629.)
223222 if sess. is_sanitizer_cfi_canonical_jump_tables_enabled ( ) && sess. is_sanitizer_cfi_enabled ( ) {
224- let canonical_jump_tables = "CFI Canonical Jump Tables\0 " . as_ptr ( ) . cast ( ) ;
223+ let canonical_jump_tables = c "CFI Canonical Jump Tables". as_ptr ( ) . cast ( ) ;
225224 llvm:: LLVMRustAddModuleFlag (
226225 llmod,
227226 llvm:: LLVMModFlagBehavior :: Override ,
@@ -232,7 +231,7 @@ pub unsafe fn create_module<'ll>(
232231
233232 // Enable LTO unit splitting if specified or if CFI is enabled. (See https://reviews.llvm.org/D53891.)
234233 if sess. is_split_lto_unit_enabled ( ) || sess. is_sanitizer_cfi_enabled ( ) {
235- let enable_split_lto_unit = "EnableSplitLTOUnit\0 " . as_ptr ( ) . cast ( ) ;
234+ let enable_split_lto_unit = c "EnableSplitLTOUnit". as_ptr ( ) . cast ( ) ;
236235 llvm:: LLVMRustAddModuleFlag (
237236 llmod,
238237 llvm:: LLVMModFlagBehavior :: Override ,
@@ -243,7 +242,7 @@ pub unsafe fn create_module<'ll>(
243242
244243 // Add "kcfi" module flag if KCFI is enabled. (See https://reviews.llvm.org/D119296.)
245244 if sess. is_sanitizer_kcfi_enabled ( ) {
246- let kcfi = "kcfi\0 " . as_ptr ( ) . cast ( ) ;
245+ let kcfi = c "kcfi". as_ptr ( ) . cast ( ) ;
247246 llvm:: LLVMRustAddModuleFlag ( llmod, llvm:: LLVMModFlagBehavior :: Override , kcfi, 1 ) ;
248247 }
249248
@@ -256,7 +255,7 @@ pub unsafe fn create_module<'ll>(
256255 llvm:: LLVMRustAddModuleFlag (
257256 llmod,
258257 llvm:: LLVMModFlagBehavior :: Warning ,
259- "cfguard\0 " . as_ptr ( ) as * const _ ,
258+ c "cfguard". as_ptr ( ) as * const _ ,
260259 1 ,
261260 )
262261 }
@@ -265,7 +264,7 @@ pub unsafe fn create_module<'ll>(
265264 llvm:: LLVMRustAddModuleFlag (
266265 llmod,
267266 llvm:: LLVMModFlagBehavior :: Warning ,
268- "cfguard\0 " . as_ptr ( ) as * const _ ,
267+ c "cfguard". as_ptr ( ) as * const _ ,
269268 2 ,
270269 )
271270 }
@@ -283,26 +282,26 @@ pub unsafe fn create_module<'ll>(
283282 llvm:: LLVMRustAddModuleFlag (
284283 llmod,
285284 behavior,
286- "branch-target-enforcement\0 " . as_ptr ( ) . cast ( ) ,
285+ c "branch-target-enforcement". as_ptr ( ) . cast ( ) ,
287286 bti. into ( ) ,
288287 ) ;
289288 llvm:: LLVMRustAddModuleFlag (
290289 llmod,
291290 behavior,
292- "sign-return-address\0 " . as_ptr ( ) . cast ( ) ,
291+ c "sign-return-address". as_ptr ( ) . cast ( ) ,
293292 pac_ret. is_some ( ) . into ( ) ,
294293 ) ;
295294 let pac_opts = pac_ret. unwrap_or ( PacRet { leaf : false , key : PAuthKey :: A } ) ;
296295 llvm:: LLVMRustAddModuleFlag (
297296 llmod,
298297 behavior,
299- "sign-return-address-all\0 " . as_ptr ( ) . cast ( ) ,
298+ c "sign-return-address-all". as_ptr ( ) . cast ( ) ,
300299 pac_opts. leaf . into ( ) ,
301300 ) ;
302301 llvm:: LLVMRustAddModuleFlag (
303302 llmod,
304303 behavior,
305- "sign-return-address-with-bkey\0 " . as_ptr ( ) . cast ( ) ,
304+ c "sign-return-address-with-bkey". as_ptr ( ) . cast ( ) ,
306305 u32:: from ( pac_opts. key == PAuthKey :: B ) ,
307306 ) ;
308307 } else {
@@ -318,15 +317,15 @@ pub unsafe fn create_module<'ll>(
318317 llvm:: LLVMRustAddModuleFlag (
319318 llmod,
320319 llvm:: LLVMModFlagBehavior :: Override ,
321- "cf-protection-branch\0 " . as_ptr ( ) . cast ( ) ,
320+ c "cf-protection-branch". as_ptr ( ) . cast ( ) ,
322321 1 ,
323322 )
324323 }
325324 if let CFProtection :: Return | CFProtection :: Full = sess. opts . unstable_opts . cf_protection {
326325 llvm:: LLVMRustAddModuleFlag (
327326 llmod,
328327 llvm:: LLVMModFlagBehavior :: Override ,
329- "cf-protection-return\0 " . as_ptr ( ) . cast ( ) ,
328+ c "cf-protection-return". as_ptr ( ) . cast ( ) ,
330329 1 ,
331330 )
332331 }
@@ -335,7 +334,7 @@ pub unsafe fn create_module<'ll>(
335334 llvm:: LLVMRustAddModuleFlag (
336335 llmod,
337336 llvm:: LLVMModFlagBehavior :: Error ,
338- "Virtual Function Elim\0 " . as_ptr ( ) . cast ( ) ,
337+ c "Virtual Function Elim". as_ptr ( ) . cast ( ) ,
339338 1 ,
340339 ) ;
341340 }
@@ -345,7 +344,7 @@ pub unsafe fn create_module<'ll>(
345344 llvm:: LLVMRustAddModuleFlag (
346345 llmod,
347346 llvm:: LLVMModFlagBehavior :: Warning ,
348- "ehcontguard\0 " . as_ptr ( ) as * const _ ,
347+ c "ehcontguard". as_ptr ( ) as * const _ ,
349348 1 ,
350349 )
351350 }
@@ -363,7 +362,7 @@ pub unsafe fn create_module<'ll>(
363362 ) ;
364363 llvm:: LLVMAddNamedMetadataOperand (
365364 llmod,
366- cstr ! ( "llvm.ident" ) . as_ptr ( ) ,
365+ c "llvm.ident". as_ptr ( ) ,
367366 llvm:: LLVMMDNodeInContext ( llcx, & name_metadata, 1 ) ,
368367 ) ;
369368
@@ -511,14 +510,13 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
511510 }
512511
513512 pub ( crate ) fn create_used_variable_impl ( & self , name : & ' static CStr , values : & [ & ' ll Value ] ) {
514- let section = cstr ! ( "llvm.metadata" ) ;
515513 let array = self . const_array ( self . type_ptr ( ) , values) ;
516514
517515 unsafe {
518516 let g = llvm:: LLVMAddGlobal ( self . llmod , self . val_ty ( array) , name. as_ptr ( ) ) ;
519517 llvm:: LLVMSetInitializer ( g, array) ;
520518 llvm:: LLVMRustSetLinkage ( g, llvm:: Linkage :: AppendingLinkage ) ;
521- llvm:: LLVMSetSection ( g, section . as_ptr ( ) ) ;
519+ llvm:: LLVMSetSection ( g, c"llvm.metadata" . as_ptr ( ) ) ;
522520 }
523521 }
524522}
0 commit comments