[libcxx-commits] [libcxx] [libcxx] Include <ctime> directly in header that uses struct tm (PR #231158)

Vladi Krapp via libcxx-commits libcxx-commits at lists.llvm.org
Mon Oct 12 07:47:57 PDT 2026


https://github.com/VladiKrapp-Arm updated https://github.com/llvm/llvm-project/pull/231158

>From 9b4161a1f7843605a7b9cdb9ec2cc933bed5ed77 Mon Sep 17 00:00:00 2001
From: Vladi Krapp <vladi.krapp at arm.com>
Date: Mon, 12 Oct 2026 14:01:46 +0100
Subject: [PATCH 1/3] [libcxx] Include <ctime> directly in header that uses
 struct tm

---
 libcxx/include/__locale_dir/time.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libcxx/include/__locale_dir/time.h b/libcxx/include/__locale_dir/time.h
index 1e02f73543efe..e7b789a2edc71 100644
--- a/libcxx/include/__locale_dir/time.h
+++ b/libcxx/include/__locale_dir/time.h
@@ -15,6 +15,7 @@
 #include <__locale_dir/ctype_base.h>
 #include <__locale_dir/locale.h>
 #include <__locale_dir/scan_keyword.h>
+#include <ctime>
 #include <ios>
 
 #if _LIBCPP_HAS_LOCALIZATION

>From 5e697208dcc08af9ec4b5c40c084489bd4fe6f77 Mon Sep 17 00:00:00 2001
From: Vladi Krapp <vladi.krapp at arm.com>
Date: Mon, 12 Oct 2026 14:01:46 +0100
Subject: [PATCH 2/3] [libcxx] Include <ctime> directly in header that uses
 struct tm

---
 libcxx/test/libcxx/transitive_includes/cxx03.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx11.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx14.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx17.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx20.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx23.csv | 3 +++
 libcxx/test/libcxx/transitive_includes/cxx26.csv | 3 +++
 7 files changed, 21 insertions(+)

diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv
index 4a7ccbd6e27fd..201fc2f36bf48 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx03.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv
@@ -274,6 +274,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -328,6 +329,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -456,6 +458,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv
index d4219f0461d35..ab8791f9aa074 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx11.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv
@@ -274,6 +274,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -328,6 +329,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -456,6 +458,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv
index 308c8430c986b..3d5030b5644e2 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx14.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv
@@ -278,6 +278,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -332,6 +333,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -460,6 +462,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv
index 1a92701afe7f2..8e3b1de5efd7e 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx17.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv
@@ -311,6 +311,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -373,6 +374,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -501,6 +503,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv
index d1b9f1744c555..b9d1dd17aa016 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv
@@ -376,6 +376,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -438,6 +439,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -567,6 +569,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx23.csv b/libcxx/test/libcxx/transitive_includes/cxx23.csv
index f23666cf27502..83125257f35f5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx23.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx23.csv
@@ -395,6 +395,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -457,6 +458,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -590,6 +592,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list
diff --git a/libcxx/test/libcxx/transitive_includes/cxx26.csv b/libcxx/test/libcxx/transitive_includes/cxx26.csv
index db8c8d1a6f429..229e85afd106b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx26.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx26.csv
@@ -390,6 +390,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -451,6 +452,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -583,6 +585,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list

>From a527f6666686967d1ab0edbef9b203e359fd9be1 Mon Sep 17 00:00:00 2001
From: Vladi Krapp <vladi.krapp at arm.com>
Date: Mon, 12 Oct 2026 14:01:46 +0100
Subject: [PATCH 3/3] [libcxx] Include <ctime> directly in header that uses
 struct tm

---
 libcxx/test/libcxx/transitive_includes/cxx29.csv | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libcxx/test/libcxx/transitive_includes/cxx29.csv b/libcxx/test/libcxx/transitive_includes/cxx29.csv
index db8c8d1a6f429..229e85afd106b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx29.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx29.csv
@@ -390,6 +390,7 @@ fstream cstdint
 fstream cstdio
 fstream cstdlib
 fstream cstring
+fstream ctime
 fstream cwchar
 fstream cwctype
 fstream initializer_list
@@ -451,6 +452,7 @@ iomanip cstdint
 iomanip cstdio
 iomanip cstdlib
 iomanip cstring
+iomanip ctime
 iomanip cwchar
 iomanip cwctype
 iomanip initializer_list
@@ -583,6 +585,7 @@ locale cstdint
 locale cstdio
 locale cstdlib
 locale cstring
+locale ctime
 locale cwchar
 locale cwctype
 locale initializer_list



More information about the libcxx-commits mailing list