[libcxx-commits] [libcxx] e915504 - [libcxx] Include <ctime> directly in header that uses struct tm (#231158)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Oct 15 01:24:43 PDT 2026
Author: Vladi Krapp
Date: 2026-10-15T09:24:33+01:00
New Revision: e915504aa2d52a25f1c5383c5dde469880cd5ad3
URL: https://github.com/llvm/llvm-project/commit/e915504aa2d52a25f1c5383c5dde469880cd5ad3
DIFF: https://github.com/llvm/llvm-project/commit/e915504aa2d52a25f1c5383c5dde469880cd5ad3.diff
LOG: [libcxx] Include <ctime> directly in header that uses struct tm (#231158)
Following https://github.com/llvm/llvm-project/pull/229601, this patch
proposes a fix similar to
https://github.com/llvm/llvm-project/pull/229957
This will fix users of `<ctime>` that previously got it as indirect
include via libcxx/include/__locale_dir/support/no_locale/characters.h
Added:
Modified:
libcxx/include/__locale_dir/time.h
libcxx/test/libcxx/transitive_includes/cxx03.csv
libcxx/test/libcxx/transitive_includes/cxx11.csv
libcxx/test/libcxx/transitive_includes/cxx14.csv
libcxx/test/libcxx/transitive_includes/cxx17.csv
libcxx/test/libcxx/transitive_includes/cxx20.csv
libcxx/test/libcxx/transitive_includes/cxx23.csv
libcxx/test/libcxx/transitive_includes/cxx26.csv
libcxx/test/libcxx/transitive_includes/cxx29.csv
Removed:
################################################################################
diff --git a/libcxx/include/__locale_dir/time.h b/libcxx/include/__locale_dir/time.h
index 1e02f73543efe8..e7b789a2edc711 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
diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv
index 4a7ccbd6e27fd5..201fc2f36bf482 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 d4219f0461d355..ab8791f9aa0747 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 308c8430c986b6..3d5030b5644e2b 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 1a92701afe7f24..8e3b1de5efd7ee 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 d1b9f1744c5551..b9d1dd17aa016f 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 f23666cf275023..83125257f35f54 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 db8c8d1a6f429f..229e85afd106b7 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
diff --git a/libcxx/test/libcxx/transitive_includes/cxx29.csv b/libcxx/test/libcxx/transitive_includes/cxx29.csv
index db8c8d1a6f429f..229e85afd106b7 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