Skip to content

Commit 15073b2

Browse files
committed
Add the new features on llvm 8 and later
1 parent 84b7da7 commit 15073b2

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/debug_info.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
//! /* inlined_at */ None);
8080
//! builder.set_current_debug_location(&context, loc);
8181
//!
82-
//! //Create global variable
82+
//! // Create global variable
8383
//! let gv = module.add_global(context.i64_type(), Some(inkwell::AddressSpace::Global), "gv");
8484
//!
8585
//!
@@ -119,13 +119,14 @@ use llvm_sys::debuginfo::{
119119
LLVMDIBuilderCreateDebugLocation, LLVMDIBuilderCreateExpression, LLVMDIBuilderCreateFile,
120120
LLVMDIBuilderCreateFunction, LLVMDIBuilderCreateLexicalBlock, LLVMDIBuilderCreateMemberType,
121121
LLVMDIBuilderCreateNameSpace, LLVMDIBuilderCreateParameterVariable,
122-
LLVMDIBuilderCreateGlobalVariableExpression,LLVMDIBuilderCreateConstantValueExpression,
123122
LLVMDIBuilderCreateStructType, LLVMDIBuilderCreateSubroutineType, LLVMDIBuilderCreateUnionType,
124123
LLVMDIBuilderFinalize, LLVMDIBuilderInsertDbgValueBefore, LLVMDIBuilderInsertDeclareAtEnd,
125124
LLVMDIBuilderInsertDeclareBefore, LLVMDILocationGetColumn, LLVMDILocationGetLine,
126125
LLVMDILocationGetScope, LLVMDITypeGetAlignInBits, LLVMDITypeGetOffsetInBits,
127126
LLVMDITypeGetSizeInBits,
128127
};
128+
#[llvm_versions(8.0..=latest)]
129+
use llvm_sys::debuginfo::{LLVMDIBuilderCreateGlobalVariableExpression,LLVMDIBuilderCreateConstantValueExpression};
129130
use llvm_sys::prelude::{LLVMDIBuilderRef, LLVMMetadataRef};
130131
use llvm_sys::core::LLVMMetadataAsValue;
131132
use std::convert::TryInto;
@@ -598,6 +599,7 @@ impl<'ctx> DebugInfoBuilder<'ctx> {
598599
}
599600
}
600601

602+
#[llvm_versions(8.0..=latest)]
601603
pub fn create_global_variable_expression(
602604
&self,
603605
scope: DIScope<'ctx>,
@@ -636,6 +638,7 @@ impl<'ctx> DebugInfoBuilder<'ctx> {
636638
}
637639
}
638640

641+
#[llvm_versions(8.0..=latest)]
639642
pub fn create_constant_expression(&self,
640643
value : i64,
641644
) -> DIExpression<'ctx> {

src/values/global_value.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use llvm_sys::core::{LLVMHasUnnamedAddr, LLVMSetUnnamedAddr};
99
use llvm_sys::core::{LLVMGetUnnamedAddress, LLVMSetUnnamedAddress};
1010
#[llvm_versions(7.0..=latest)]
1111
use llvm_sys::LLVMUnnamedAddr;
12+
#[llvm_versions(8.0..=latest)]
1213
use llvm_sys::core::LLVMGlobalSetMetadata;
1314
use llvm_sys::prelude::LLVMValueRef;
1415

@@ -20,7 +21,9 @@ use crate::support::{to_c_str, LLVMString};
2021
#[llvm_versions(7.0..=latest)]
2122
use crate::comdat::Comdat;
2223
use crate::values::traits::AsValueRef;
23-
use crate::values::{BasicValueEnum, BasicValue, PointerValue, Value, MetadataValue};
24+
use crate::values::{BasicValueEnum, BasicValue, PointerValue, Value};
25+
#[llvm_versions(8.0..=latest)]
26+
use crate::values::MetadataValue;
2427

2528
// REVIEW: GlobalValues are always PointerValues. With SubTypes, we should
2629
// compress this into a PointerValue<Global> type
@@ -267,6 +270,7 @@ impl<'ctx> GlobalValue<'ctx> {
267270
}
268271

269272
/// Sets a metadata of the given type on the GlobalValue
273+
#[llvm_versions(8.0..=latest)]
270274
pub fn set_metadata(self, metadata: MetadataValue<'ctx>, kind_id: u32) {
271275
unsafe {
272276
LLVMGlobalSetMetadata(self.as_value_ref(), kind_id, metadata.as_metadata_ref())

tests/all/test_debug_info.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use inkwell::context::Context;
22
use inkwell::debug_info::{
33
AsDIScope, DIFlags, DIFlagsConstants, DISubprogram, DWARFEmissionKind, DWARFSourceLanguage,
4-
DebugInfoBuilder,
54
};
5+
#[llvm_versions(8.0..=latest)]
6+
use inkwell::debug_info::DebugInfoBuilder;
67
use inkwell::module::FlagBehavior;
78

89
#[test]
@@ -302,6 +303,7 @@ fn test_anonymous_basic_type() {
302303
);
303304
}
304305

306+
#[llvm_versions(8.0..=latest)]
305307
#[test]
306308
fn test_global_expressions() {
307309

0 commit comments

Comments
 (0)