Skip to content

Commit e54a16c

Browse files
committed
Change DIBuilderCreateEnumerator signature to match LLVM 9
No functional changes intended.
1 parent 1e17969 commit e54a16c

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

src/librustc_codegen_llvm/debuginfo/metadata.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1779,13 +1779,15 @@ fn prepare_enum_metadata(
17791779
.discriminants(cx.tcx)
17801780
.zip(&def.variants)
17811781
.map(|((_, discr), v)| {
1782-
let name = SmallCStr::new(&v.ident.as_str());
1782+
let name = v.ident.as_str();
17831783
unsafe {
17841784
Some(llvm::LLVMRustDIBuilderCreateEnumerator(
17851785
DIB(cx),
1786-
name.as_ptr(),
1786+
name.as_ptr().cast(),
1787+
name.len(),
17871788
// FIXME: what if enumeration has i128 discriminant?
1788-
discr.val as u64,
1789+
discr.val as i64,
1790+
false, // FIXME: IsUnsigned.
17891791
))
17901792
}
17911793
})
@@ -1794,13 +1796,15 @@ fn prepare_enum_metadata(
17941796
.as_generator()
17951797
.variant_range(enum_def_id, cx.tcx)
17961798
.map(|variant_index| {
1797-
let name = SmallCStr::new(&substs.as_generator().variant_name(variant_index));
1799+
let name = substs.as_generator().variant_name(variant_index);
17981800
unsafe {
17991801
Some(llvm::LLVMRustDIBuilderCreateEnumerator(
18001802
DIB(cx),
1801-
name.as_ptr(),
1803+
name.as_ptr().cast(),
1804+
name.len(),
18021805
// FIXME: what if enumeration has i128 discriminant?
1803-
variant_index.as_usize() as u64,
1806+
variant_index.as_usize() as i64,
1807+
false, // FIXME: IsUnsigned.
18041808
))
18051809
}
18061810
})

src/librustc_codegen_llvm/llvm/ffi.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1776,7 +1776,9 @@ extern "C" {
17761776
pub fn LLVMRustDIBuilderCreateEnumerator(
17771777
Builder: &DIBuilder<'a>,
17781778
Name: *const c_char,
1779-
Val: u64,
1779+
NameLen: size_t,
1780+
Value: i64,
1781+
IsUnsigned: bool,
17801782
) -> &'a DIEnumerator;
17811783

17821784
pub fn LLVMRustDIBuilderCreateEnumerationType(

src/rustllvm/RustWrapper.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -891,10 +891,10 @@ extern "C" LLVMValueRef LLVMRustDIBuilderInsertDeclareAtEnd(
891891
unwrap(InsertAtEnd)));
892892
}
893893

894-
extern "C" LLVMMetadataRef
895-
LLVMRustDIBuilderCreateEnumerator(LLVMRustDIBuilderRef Builder,
896-
const char *Name, uint64_t Val) {
897-
return wrap(Builder->createEnumerator(Name, Val));
894+
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerator(
895+
LLVMRustDIBuilderRef Builder, const char *Name, size_t NameLen,
896+
int64_t Value, bool IsUnsigned) {
897+
return wrap(Builder->createEnumerator({Name, NameLen}, Value, IsUnsigned));
898898
}
899899

900900
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(

0 commit comments

Comments
 (0)