Inline strlen_rt in CStr::from_ptr

This enables LLVM to optimize this function as if it was strlen
without having to enable std-aware LTO.
This commit is contained in:
Konrad Borowski 2023-08-18 00:09:03 +02:00
parent 0768872680
commit e94ba4ae78

View File

@ -253,7 +253,7 @@ impl CStr {
/// ```
///
/// [valid]: core::ptr#safety
#[inline]
#[inline] // inline is necessary for codegen to see strlen.
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_const_unstable(feature = "const_cstr_from_ptr", issue = "113219")]
@ -280,6 +280,8 @@ const fn strlen_ct(s: *const c_char) -> usize {
len
}
// `inline` is necessary for codegen to see strlen.
#[inline]
fn strlen_rt(s: *const c_char) -> usize {
extern "C" {
/// Provided by libc or compiler_builtins.