@@ -8,7 +8,6 @@ use crate::llvm_util;
8
8
use crate :: type_:: Type ;
9
9
use crate :: value:: Value ;
10
10
11
- use cstr:: cstr;
12
11
use rustc_codegen_ssa:: base:: { wants_msvc_seh, wants_wasm_eh} ;
13
12
use rustc_codegen_ssa:: errors as ssa_errors;
14
13
use rustc_codegen_ssa:: traits:: * ;
@@ -215,13 +214,13 @@ pub unsafe fn create_module<'ll>(
215
214
// If skipping the PLT is enabled, we need to add some module metadata
216
215
// to ensure intrinsic calls don't use it.
217
216
if !sess. needs_plt ( ) {
218
- let avoid_plt = "RtLibUseGOT\0 " . as_ptr ( ) . cast ( ) ;
217
+ let avoid_plt = c "RtLibUseGOT". as_ptr ( ) . cast ( ) ;
219
218
llvm:: LLVMRustAddModuleFlag ( llmod, llvm:: LLVMModFlagBehavior :: Warning , avoid_plt, 1 ) ;
220
219
}
221
220
222
221
// Enable canonical jump tables if CFI is enabled. (See https://reviews.llvm.org/D65629.)
223
222
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 ( ) ;
225
224
llvm:: LLVMRustAddModuleFlag (
226
225
llmod,
227
226
llvm:: LLVMModFlagBehavior :: Override ,
@@ -232,7 +231,7 @@ pub unsafe fn create_module<'ll>(
232
231
233
232
// Enable LTO unit splitting if specified or if CFI is enabled. (See https://reviews.llvm.org/D53891.)
234
233
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 ( ) ;
236
235
llvm:: LLVMRustAddModuleFlag (
237
236
llmod,
238
237
llvm:: LLVMModFlagBehavior :: Override ,
@@ -243,7 +242,7 @@ pub unsafe fn create_module<'ll>(
243
242
244
243
// Add "kcfi" module flag if KCFI is enabled. (See https://reviews.llvm.org/D119296.)
245
244
if sess. is_sanitizer_kcfi_enabled ( ) {
246
- let kcfi = "kcfi\0 " . as_ptr ( ) . cast ( ) ;
245
+ let kcfi = c "kcfi". as_ptr ( ) . cast ( ) ;
247
246
llvm:: LLVMRustAddModuleFlag ( llmod, llvm:: LLVMModFlagBehavior :: Override , kcfi, 1 ) ;
248
247
}
249
248
@@ -256,7 +255,7 @@ pub unsafe fn create_module<'ll>(
256
255
llvm:: LLVMRustAddModuleFlag (
257
256
llmod,
258
257
llvm:: LLVMModFlagBehavior :: Warning ,
259
- "cfguard\0 " . as_ptr ( ) as * const _ ,
258
+ c "cfguard". as_ptr ( ) as * const _ ,
260
259
1 ,
261
260
)
262
261
}
@@ -265,7 +264,7 @@ pub unsafe fn create_module<'ll>(
265
264
llvm:: LLVMRustAddModuleFlag (
266
265
llmod,
267
266
llvm:: LLVMModFlagBehavior :: Warning ,
268
- "cfguard\0 " . as_ptr ( ) as * const _ ,
267
+ c "cfguard". as_ptr ( ) as * const _ ,
269
268
2 ,
270
269
)
271
270
}
@@ -283,26 +282,26 @@ pub unsafe fn create_module<'ll>(
283
282
llvm:: LLVMRustAddModuleFlag (
284
283
llmod,
285
284
behavior,
286
- "branch-target-enforcement\0 " . as_ptr ( ) . cast ( ) ,
285
+ c "branch-target-enforcement". as_ptr ( ) . cast ( ) ,
287
286
bti. into ( ) ,
288
287
) ;
289
288
llvm:: LLVMRustAddModuleFlag (
290
289
llmod,
291
290
behavior,
292
- "sign-return-address\0 " . as_ptr ( ) . cast ( ) ,
291
+ c "sign-return-address". as_ptr ( ) . cast ( ) ,
293
292
pac_ret. is_some ( ) . into ( ) ,
294
293
) ;
295
294
let pac_opts = pac_ret. unwrap_or ( PacRet { leaf : false , key : PAuthKey :: A } ) ;
296
295
llvm:: LLVMRustAddModuleFlag (
297
296
llmod,
298
297
behavior,
299
- "sign-return-address-all\0 " . as_ptr ( ) . cast ( ) ,
298
+ c "sign-return-address-all". as_ptr ( ) . cast ( ) ,
300
299
pac_opts. leaf . into ( ) ,
301
300
) ;
302
301
llvm:: LLVMRustAddModuleFlag (
303
302
llmod,
304
303
behavior,
305
- "sign-return-address-with-bkey\0 " . as_ptr ( ) . cast ( ) ,
304
+ c "sign-return-address-with-bkey". as_ptr ( ) . cast ( ) ,
306
305
u32:: from ( pac_opts. key == PAuthKey :: B ) ,
307
306
) ;
308
307
} else {
@@ -318,15 +317,15 @@ pub unsafe fn create_module<'ll>(
318
317
llvm:: LLVMRustAddModuleFlag (
319
318
llmod,
320
319
llvm:: LLVMModFlagBehavior :: Override ,
321
- "cf-protection-branch\0 " . as_ptr ( ) . cast ( ) ,
320
+ c "cf-protection-branch". as_ptr ( ) . cast ( ) ,
322
321
1 ,
323
322
)
324
323
}
325
324
if let CFProtection :: Return | CFProtection :: Full = sess. opts . unstable_opts . cf_protection {
326
325
llvm:: LLVMRustAddModuleFlag (
327
326
llmod,
328
327
llvm:: LLVMModFlagBehavior :: Override ,
329
- "cf-protection-return\0 " . as_ptr ( ) . cast ( ) ,
328
+ c "cf-protection-return". as_ptr ( ) . cast ( ) ,
330
329
1 ,
331
330
)
332
331
}
@@ -335,7 +334,7 @@ pub unsafe fn create_module<'ll>(
335
334
llvm:: LLVMRustAddModuleFlag (
336
335
llmod,
337
336
llvm:: LLVMModFlagBehavior :: Error ,
338
- "Virtual Function Elim\0 " . as_ptr ( ) . cast ( ) ,
337
+ c "Virtual Function Elim". as_ptr ( ) . cast ( ) ,
339
338
1 ,
340
339
) ;
341
340
}
@@ -345,7 +344,7 @@ pub unsafe fn create_module<'ll>(
345
344
llvm:: LLVMRustAddModuleFlag (
346
345
llmod,
347
346
llvm:: LLVMModFlagBehavior :: Warning ,
348
- "ehcontguard\0 " . as_ptr ( ) as * const _ ,
347
+ c "ehcontguard". as_ptr ( ) as * const _ ,
349
348
1 ,
350
349
)
351
350
}
@@ -363,7 +362,7 @@ pub unsafe fn create_module<'ll>(
363
362
) ;
364
363
llvm:: LLVMAddNamedMetadataOperand (
365
364
llmod,
366
- cstr ! ( "llvm.ident" ) . as_ptr ( ) ,
365
+ c "llvm.ident". as_ptr ( ) ,
367
366
llvm:: LLVMMDNodeInContext ( llcx, & name_metadata, 1 ) ,
368
367
) ;
369
368
@@ -511,14 +510,13 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
511
510
}
512
511
513
512
pub ( crate ) fn create_used_variable_impl ( & self , name : & ' static CStr , values : & [ & ' ll Value ] ) {
514
- let section = cstr ! ( "llvm.metadata" ) ;
515
513
let array = self . const_array ( self . type_ptr ( ) , values) ;
516
514
517
515
unsafe {
518
516
let g = llvm:: LLVMAddGlobal ( self . llmod , self . val_ty ( array) , name. as_ptr ( ) ) ;
519
517
llvm:: LLVMSetInitializer ( g, array) ;
520
518
llvm:: LLVMRustSetLinkage ( g, llvm:: Linkage :: AppendingLinkage ) ;
521
- llvm:: LLVMSetSection ( g, section . as_ptr ( ) ) ;
519
+ llvm:: LLVMSetSection ( g, c"llvm.metadata" . as_ptr ( ) ) ;
522
520
}
523
521
}
524
522
}
0 commit comments