[libc-commits] [libc] [libc] Add inet_ntop (PR #204143)
Jeff Bailey via libc-commits
libc-commits at lists.llvm.org
Tue Jun 23 03:57:15 PDT 2026
================
@@ -61,5 +68,160 @@ cpp::optional<in_addr_t> inet_addr(const char *cp) {
return Endian::to_big_endian(result);
}
+namespace {
+
+size_t ipv4_num_bytes(cpp::span<const uint8_t> src) {
+ size_t result = 8; // four digits, three dots and '\0'
+ for (unsigned i = 0; i < 4; ++i)
+ result += (src[i] >= 10) + (src[i] >= 100);
+ return result;
+}
+
+size_t ipv4_to_str_unchecked(cpp::span<const uint8_t> src,
+ cpp::span<char> dst) {
+ size_t pos = 0;
----------------
kaladron wrote:
I haven't checked our std::span implementation, but doing something like this:
```c++
if (src.size() < 4 || dst.size() < 16) {
return 0;
}
```
May allow the compiler to eliminate the bounds checks done by the span.
https://github.com/llvm/llvm-project/pull/204143
More information about the libc-commits
mailing list