From d158a57681af6e9d1b966b99abbe543dfd4601ae Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 18 Jul 2025 16:48:33 +0200 Subject: [PATCH 1/2] Add binding for new `gcc_jit_lvalue_get_name` function --- gccjit_sys/src/lib.rs | 3 +++ src/lvalue.rs | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/gccjit_sys/src/lib.rs b/gccjit_sys/src/lib.rs index 2511155..3399b04 100644 --- a/gccjit_sys/src/lib.rs +++ b/gccjit_sys/src/lib.rs @@ -699,4 +699,7 @@ extern "C" { #[cfg(feature="master")] pub fn gcc_jit_lvalue_add_attribute(variable: *mut gcc_jit_lvalue, attribute: gcc_jit_variable_attribute); + + #[cfg(feature="master")] + pub fn gcc_jit_lvalue_get_name(lvalue: *mut gcc_jit_lvalue) -> *const c_char; } diff --git a/src/lvalue.rs b/src/lvalue.rs index 851b210..20810b1 100644 --- a/src/lvalue.rs +++ b/src/lvalue.rs @@ -1,6 +1,7 @@ use std::{ffi::CString, marker::PhantomData}; use std::fmt; use std::ptr; + use context::Context; use rvalue::{RValue, ToRValue}; use rvalue; @@ -238,6 +239,18 @@ impl<'ctx> LValue<'ctx> { }, } } + + #[cfg(feature = "master")] + pub fn get_name(&self) -> Option<&'ctx str> { + unsafe { + let str = gccjit_sys::gcc_jit_lvalue_get_name(self.ptr); + if str.is_null() { + None + } else { + Some(std::ffi::CStr::from_ptr(str).to_str().expect("invalid lvalue name")) + } + } + } } pub unsafe fn from_ptr<'ctx>(ptr: *mut gccjit_sys::gcc_jit_lvalue) -> LValue<'ctx> { From de3329f3fd806726f6f1a234fa6d9eb88e2f3c14 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 18 Jul 2025 16:52:43 +0200 Subject: [PATCH 2/2] Fix new clippy lints --- src/types.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types.rs b/src/types.rs index 4119ad2..8dcd9f8 100644 --- a/src/types.rs +++ b/src/types.rs @@ -212,7 +212,7 @@ impl<'ctx> Type<'ctx> { pub fn get_size(&self) -> u32 { unsafe { let size = gccjit_sys::gcc_jit_type_get_size(self.ptr); - assert_ne!(size, -1, "called get_size of unsupported type: {:?}", self); + assert_ne!(size, -1, "called get_size of unsupported type: {self:?}"); size as u32 } }