Skip to content

Commit 13ba444

Browse files
DarksonnLeo-Yan
authored andcommitted
rust: use the new name Location::file_as_c_str() in Rust >= 1.91.0
As part of the stabilization of Location::file_with_nul(), it was brought up that the with_nul() suffix usually means something else in Rust APIs, so the API is being renamed prior to stabilization [1]. Thus, use the new name on new rustc versions. Link: https://www.github.com/rust-lang/rust/pull/145928 [1] Signed-off-by: Alice Ryhl <[email protected]> Reviewed-by: Boqun Feng <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Kept `cfg` separation. Reworded slightly. - Miguel ] Signed-off-by: Miguel Ojeda <[email protected]>
1 parent 54413e3 commit 13ba444

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

init/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ config RUSTC_HAS_UNNECESSARY_TRANSMUTES
146146
config RUSTC_HAS_FILE_WITH_NUL
147147
def_bool RUSTC_VERSION >= 108900
148148

149+
config RUSTC_HAS_FILE_AS_C_STR
150+
def_bool RUSTC_VERSION >= 109100
151+
149152
config PAHOLE_VERSION
150153
int
151154
default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))

rust/kernel/lib.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ macro_rules! asm {
296296

297297
/// Gets the C string file name of a [`Location`].
298298
///
299-
/// If `file_with_nul()` is not available, returns a string that warns about it.
299+
/// If `Location::file_as_c_str()` is not available, returns a string that warns about it.
300300
///
301301
/// [`Location`]: core::panic::Location
302302
///
@@ -310,8 +310,8 @@ macro_rules! asm {
310310
/// let caller = core::panic::Location::caller();
311311
///
312312
/// // Output:
313-
/// // - A path like "rust/kernel/example.rs" if file_with_nul() is available.
314-
/// // - "<Location::file_with_nul() not supported>" otherwise.
313+
/// // - A path like "rust/kernel/example.rs" if `file_as_c_str()` is available.
314+
/// // - "<Location::file_as_c_str() not supported>" otherwise.
315315
/// let caller_file = file_from_location(caller);
316316
///
317317
/// // Prints out the message with caller's file name.
@@ -326,14 +326,19 @@ macro_rules! asm {
326326
/// ```
327327
#[inline]
328328
pub fn file_from_location<'a>(loc: &'a core::panic::Location<'a>) -> &'a core::ffi::CStr {
329-
#[cfg(CONFIG_RUSTC_HAS_FILE_WITH_NUL)]
329+
#[cfg(CONFIG_RUSTC_HAS_FILE_AS_C_STR)]
330+
{
331+
loc.file_as_c_str()
332+
}
333+
334+
#[cfg(all(CONFIG_RUSTC_HAS_FILE_WITH_NUL, not(CONFIG_RUSTC_HAS_FILE_AS_C_STR)))]
330335
{
331336
loc.file_with_nul()
332337
}
333338

334339
#[cfg(not(CONFIG_RUSTC_HAS_FILE_WITH_NUL))]
335340
{
336341
let _ = loc;
337-
c"<Location::file_with_nul() not supported>"
342+
c"<Location::file_as_c_str() not supported>"
338343
}
339344
}

0 commit comments

Comments
 (0)