Skip to content

Commit 6da2d6e

Browse files
committed
MetadataType type cast
1 parent e2ec83c commit 6da2d6e

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

+7-8
Original file line numberDiff line numberDiff line change
@@ -682,16 +682,15 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
682682
llvm::LLVMValueAsMetadata(self.cx.const_uint_big(llty, range.start)),
683683
llvm::LLVMValueAsMetadata(self.cx.const_uint_big(llty, range.end.wrapping_add(1))),
684684
];
685-
686685
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, md.as_ptr(), md.len());
687-
self.set_metadata(load, llvm::MD_range as c_uint, md);
686+
self.set_metadata(load, llvm::MD_range, md);
688687
}
689688
}
690689

691690
fn nonnull_metadata(&mut self, load: &'ll Value) {
692691
unsafe {
693692
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
694-
self.set_metadata(load, llvm::MD_nonnull as c_uint, md);
693+
self.set_metadata(load, llvm::MD_nonnull, md);
695694
}
696695
}
697696

@@ -741,7 +740,7 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
741740
// [1]: https://llvm.org/docs/LangRef.html#store-instruction
742741
let one = llvm::LLVMValueAsMetadata(self.cx.const_i32(1));
743742
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, &one, 1);
744-
self.set_metadata(store, llvm::MD_nontemporal as c_uint, md);
743+
self.set_metadata(store, llvm::MD_nontemporal, md);
745744
}
746745
}
747746
store
@@ -1206,7 +1205,7 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
12061205
fn set_invariant_load(&mut self, load: &'ll Value) {
12071206
unsafe {
12081207
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
1209-
self.set_metadata(load, llvm::MD_invariant_load as c_uint, md);
1208+
self.set_metadata(load, llvm::MD_invariant_load, md);
12101209
}
12111210
}
12121211

@@ -1337,21 +1336,21 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
13371336
unsafe {
13381337
let md = [llvm::LLVMValueAsMetadata(self.cx.const_u64(align.bytes()))];
13391338
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, md.as_ptr(), md.len());
1340-
self.set_metadata(load, llvm::MD_align as c_uint, md);
1339+
self.set_metadata(load, llvm::MD_align, md);
13411340
}
13421341
}
13431342

13441343
fn noundef_metadata(&mut self, load: &'ll Value) {
13451344
unsafe {
13461345
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
1347-
self.set_metadata(load, llvm::MD_noundef as c_uint, md);
1346+
self.set_metadata(load, llvm::MD_noundef, md);
13481347
}
13491348
}
13501349

13511350
pub(crate) fn set_unpredictable(&mut self, inst: &'ll Value) {
13521351
unsafe {
13531352
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
1354-
self.set_metadata(inst, llvm::MD_unpredictable as c_uint, md);
1353+
self.set_metadata(inst, llvm::MD_unpredictable, md);
13551354
}
13561355
}
13571356

compiler/rustc_codegen_llvm/src/context.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use smallvec::SmallVec;
3030
use crate::back::write::to_llvm_code_model;
3131
use crate::callee::get_fn;
3232
use crate::debuginfo::metadata::apply_vcall_visibility_metadata;
33-
use crate::llvm::Metadata;
33+
use crate::llvm::{Metadata, MetadataType};
3434
use crate::type_::Type;
3535
use crate::value::Value;
3636
use crate::{attributes, coverageinfo, debuginfo, llvm, llvm_util};
@@ -1120,10 +1120,10 @@ impl CodegenCx<'_, '_> {
11201120
}
11211121

11221122
/// A wrapper for [`llvm::LLVMSetMetadata`], but it takes `Metadata` as a parameter instead of `Value`.
1123-
pub(crate) fn set_metadata<'a>(&self, val: &'a Value, kind_id: c_uint, md: &'a Metadata) {
1123+
pub(crate) fn set_metadata<'a>(&self, val: &'a Value, kind_id: MetadataType, md: &'a Metadata) {
11241124
unsafe {
11251125
let node = llvm::LLVMMetadataAsValue(&self.llcx, md);
1126-
llvm::LLVMSetMetadata(val, kind_id, node);
1126+
llvm::LLVMSetMetadata(val, kind_id as c_uint, node);
11271127
}
11281128
}
11291129
}

0 commit comments

Comments
 (0)