[libc-commits] [libc] [libc] s/in_addr/struct in_addr/ (PR #196937)
Pavel Labath via libc-commits
libc-commits at lists.llvm.org
Mon May 11 06:04:26 PDT 2026
https://github.com/labath updated https://github.com/llvm/llvm-project/pull/196937
>From e2e634b719ceb30acf8f80f6b0170b889b065e92 Mon Sep 17 00:00:00 2001
From: Pavel Labath <pavel at labath.sk>
Date: Mon, 11 May 2026 12:31:21 +0000
Subject: [PATCH 1/2] [libc] s/in_addr/struct in_addr/
in_addr should be a regular tagged struct, not a
typedef-of-an-anonymous-struct. C++ doesn't care about this as much as C
does, but even in C++ one cannot use `struct Foo` syntax to refer to a
struct if it was not declared that way.
---
libc/include/CMakeLists.txt | 2 +-
libc/include/arpa/inet.yaml | 4 ++--
libc/include/llvm-libc-types/CMakeLists.txt | 2 +-
.../llvm-libc-types/{in_addr.h => struct_in_addr.h} | 12 ++++++------
libc/src/arpa/inet/CMakeLists.txt | 4 ++--
libc/src/arpa/inet/inet_addr.cpp | 4 ++--
libc/src/arpa/inet/inet_aton.cpp | 2 +-
libc/src/arpa/inet/inet_aton.h | 4 ++--
libc/test/src/arpa/inet/inet_aton_test.cpp | 2 +-
9 files changed, 18 insertions(+), 18 deletions(-)
rename libc/include/llvm-libc-types/{in_addr.h => struct_in_addr.h} (62%)
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index fac2b40ca45a8..e5f96ab19d9f1 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -205,8 +205,8 @@ add_header_macro(
DEPENDS
.llvm_libc_common_h
.inttypes
- .llvm-libc-types.in_addr
.llvm-libc-types.in_addr_t
+ .llvm-libc-types.struct_in_addr
)
file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/netinet)
diff --git a/libc/include/arpa/inet.yaml b/libc/include/arpa/inet.yaml
index a0601d700d1b4..e6016152a1466 100644
--- a/libc/include/arpa/inet.yaml
+++ b/libc/include/arpa/inet.yaml
@@ -3,8 +3,8 @@ standards:
- posix
macros: []
types:
- - type_name: in_addr
- type_name: in_addr_t
+ - type_name: struct_in_addr
enums: []
objects: []
functions:
@@ -32,7 +32,7 @@ functions:
return_type: int
arguments:
- type: const char *
- - type: in_addr *
+ - type: struct in_addr *
- name: ntohl
standards:
- POSIX
diff --git a/libc/include/llvm-libc-types/CMakeLists.txt b/libc/include/llvm-libc-types/CMakeLists.txt
index ad294279e0f03..e967b43d81df0 100644
--- a/libc/include/llvm-libc-types/CMakeLists.txt
+++ b/libc/include/llvm-libc-types/CMakeLists.txt
@@ -57,7 +57,7 @@ add_header(gid_t HDR gid_t.h)
add_header(uid_t HDR uid_t.h)
add_header(imaxdiv_t HDR imaxdiv_t.h)
add_header(in_addr_t HDR in_addr_t.h)
-add_header(in_addr HDR in_addr.h DEPENDS .in_addr_t)
+add_header(struct_in_addr HDR struct_in_addr.h DEPENDS .in_addr_t)
add_header(ino_t HDR ino_t.h)
add_header(key_t HDR key_t.h)
add_header(mbstate_t HDR mbstate_t.h)
diff --git a/libc/include/llvm-libc-types/in_addr.h b/libc/include/llvm-libc-types/struct_in_addr.h
similarity index 62%
rename from libc/include/llvm-libc-types/in_addr.h
rename to libc/include/llvm-libc-types/struct_in_addr.h
index ab42142e323b2..2ff5694dfb173 100644
--- a/libc/include/llvm-libc-types/in_addr.h
+++ b/libc/include/llvm-libc-types/struct_in_addr.h
@@ -1,4 +1,4 @@
-//===-- Definition of in_addr type ----------------------------------------===//
+//===-- Definition of struct in_addr --------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -6,13 +6,13 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_LIBC_TYPES_IN_ADDR_H
-#define LLVM_LIBC_TYPES_IN_ADDR_H
+#ifndef LLVM_LIBC_TYPES_STRUCT_IN_ADDR_H
+#define LLVM_LIBC_TYPES_STRUCT_IN_ADDR_H
#include "in_addr_t.h"
-typedef struct {
+struct in_addr {
in_addr_t s_addr;
-} in_addr;
+};
-#endif // LLVM_LIBC_TYPES_IN_ADDR_H
+#endif // LLVM_LIBC_TYPES_STRUCT_IN_ADDR_H
diff --git a/libc/src/arpa/inet/CMakeLists.txt b/libc/src/arpa/inet/CMakeLists.txt
index 3b3d0f43b8586..7b421c30e07fa 100644
--- a/libc/src/arpa/inet/CMakeLists.txt
+++ b/libc/src/arpa/inet/CMakeLists.txt
@@ -30,7 +30,7 @@ add_entrypoint_object(
inet_aton.h
DEPENDS
libc.include.arpa_inet
- libc.include.llvm-libc-types.in_addr
+ libc.include.llvm-libc-types.struct_in_addr
libc.src.__support.common
libc.src.__support.str_to_integer
)
@@ -44,7 +44,7 @@ add_entrypoint_object(
DEPENDS
libc.include.arpa_inet
libc.include.llvm-libc-macros.netinet_in_macros
- libc.include.llvm-libc-types.in_addr
+ libc.include.llvm-libc-types.struct_in_addr
libc.include.llvm-libc-types.in_addr_t
libc.src.__support.common
libc.src.arpa.inet.inet_aton
diff --git a/libc/src/arpa/inet/inet_addr.cpp b/libc/src/arpa/inet/inet_addr.cpp
index 8ce88c0df8aec..7548996ff6526 100644
--- a/libc/src/arpa/inet/inet_addr.cpp
+++ b/libc/src/arpa/inet/inet_addr.cpp
@@ -8,7 +8,7 @@
#include "src/arpa/inet/inet_addr.h"
#include "include/llvm-libc-macros/netinet-in-macros.h"
-#include "include/llvm-libc-types/in_addr.h"
+#include "include/llvm-libc-types/struct_in_addr.h"
#include "include/llvm-libc-types/in_addr_t.h"
#include "src/__support/common.h"
#include "src/arpa/inet/inet_aton.h"
@@ -16,7 +16,7 @@
namespace LIBC_NAMESPACE_DECL {
LLVM_LIBC_FUNCTION(in_addr_t, inet_addr, (const char *cp)) {
- in_addr addr;
+ struct in_addr addr;
return inet_aton(cp, &addr) ? addr.s_addr : INADDR_NONE;
}
diff --git a/libc/src/arpa/inet/inet_aton.cpp b/libc/src/arpa/inet/inet_aton.cpp
index 71419cb9a00c8..c7f002ec393aa 100644
--- a/libc/src/arpa/inet/inet_aton.cpp
+++ b/libc/src/arpa/inet/inet_aton.cpp
@@ -13,7 +13,7 @@
namespace LIBC_NAMESPACE_DECL {
-LLVM_LIBC_FUNCTION(int, inet_aton, (const char *cp, in_addr *inp)) {
+LLVM_LIBC_FUNCTION(int, inet_aton, (const char *cp, struct in_addr *inp)) {
constexpr int IPV4_MAX_DOT_NUM = 3;
unsigned long parts[IPV4_MAX_DOT_NUM + 1] = {0};
int dot_num = 0;
diff --git a/libc/src/arpa/inet/inet_aton.h b/libc/src/arpa/inet/inet_aton.h
index ea387d1f6b2f6..5d97ad5547016 100644
--- a/libc/src/arpa/inet/inet_aton.h
+++ b/libc/src/arpa/inet/inet_aton.h
@@ -9,12 +9,12 @@
#ifndef LLVM_LIBC_SRC_ARPA_INET_INET_ATON_H
#define LLVM_LIBC_SRC_ARPA_INET_INET_ATON_H
-#include "include/llvm-libc-types/in_addr.h"
+#include "include/llvm-libc-types/struct_in_addr.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
-int inet_aton(const char *cp, in_addr *inp);
+int inet_aton(const char *cp, struct in_addr *inp);
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/arpa/inet/inet_aton_test.cpp b/libc/test/src/arpa/inet/inet_aton_test.cpp
index c9c97870e0dff..7757ba7ad4d07 100644
--- a/libc/test/src/arpa/inet/inet_aton_test.cpp
+++ b/libc/test/src/arpa/inet/inet_aton_test.cpp
@@ -13,7 +13,7 @@
namespace LIBC_NAMESPACE_DECL {
TEST(LlvmLibcInetAton, ValidTest) {
- in_addr a;
+ struct in_addr a;
// a.b.c.d
a.s_addr = 0;
>From 0c4527df822394971b0f53d70365638c81eb6347 Mon Sep 17 00:00:00 2001
From: Pavel Labath <pavel at labath.sk>
Date: Mon, 11 May 2026 13:04:08 +0000
Subject: [PATCH 2/2] format
---
libc/src/arpa/inet/inet_addr.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libc/src/arpa/inet/inet_addr.cpp b/libc/src/arpa/inet/inet_addr.cpp
index 7548996ff6526..00a4a5ad22ecd 100644
--- a/libc/src/arpa/inet/inet_addr.cpp
+++ b/libc/src/arpa/inet/inet_addr.cpp
@@ -8,8 +8,8 @@
#include "src/arpa/inet/inet_addr.h"
#include "include/llvm-libc-macros/netinet-in-macros.h"
-#include "include/llvm-libc-types/struct_in_addr.h"
#include "include/llvm-libc-types/in_addr_t.h"
+#include "include/llvm-libc-types/struct_in_addr.h"
#include "src/__support/common.h"
#include "src/arpa/inet/inet_aton.h"
More information about the libc-commits
mailing list