[libcxx-commits] [libcxx] [libc++][test] Include `<ios>` and `<ctime>` in `time_get_byname`/`time_put_byname` tests (PR #179986)

S. B. Tam via libcxx-commits libcxx-commits at lists.llvm.org
Thu Feb 5 09:51:26 PST 2026


https://github.com/cpplearner updated https://github.com/llvm/llvm-project/pull/179986

>From 50e584da66c9e444cfe6bf9affd1d52fc1419de7 Mon Sep 17 00:00:00 2001
From: cpplearner <cpplearner at outlook.com>
Date: Fri, 6 Feb 2026 00:38:45 +0800
Subject: [PATCH 1/3] [libc++][test] Include `<ios>` in
 `time_get_byname`/`time_put_byname` tests

---
 .../category.time/locale.time.get.byname/get_date.pass.cpp   | 1 +
 .../locale.time.get.byname/get_date_wide.pass.cpp            | 5 ++++-
 .../locale.time.get.byname/get_monthname.pass.cpp            | 1 +
 .../locale.time.get.byname/get_monthname_wide.pass.cpp       | 5 ++++-
 .../category.time/locale.time.get.byname/get_one.pass.cpp    | 1 +
 .../locale.time.get.byname/get_one_wide.pass.cpp             | 5 ++++-
 .../locale.time.get.byname/get_weekday.pass.cpp              | 1 +
 .../locale.time.get.byname/get_weekday_wide.pass.cpp         | 5 ++++-
 .../category.time/locale.time.put.byname/put1.pass.cpp       | 5 ++++-
 9 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
index 3f53490c1baee..a0c0a869e4fbd 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
@@ -24,6 +24,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
index 3e20193d4af08..0b271efece686 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
@@ -24,8 +24,11 @@
 // get_date(iter_type s, iter_type end, ios_base& str,
 //          ios_base::iostate& err, tm* t) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
index fbffafc5bcee7..40f1a087567b2 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
@@ -22,6 +22,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
index 54eff245d387d..cee793b1d5539 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
@@ -21,8 +21,11 @@
 // get_monthname(iter_type s, iter_type end, ios_base& str,
 //               ios_base::iostate& err, tm* t) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
index 513f92bc3fafd..03729ed68dc5c 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
@@ -25,6 +25,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
index f3a09fe513731..84cc41817a163 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
@@ -25,8 +25,11 @@
 // iter_type get(iter_type s, iter_type end, ios_base& f,
 //               ios_base::iostate& err, tm *t, char format, char modifier = 0) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
index 0df0b10c9d7ca..d5b880d6097eb 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
@@ -21,6 +21,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
index 2813c5dec568c..fb863ec3d1bc0 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
@@ -21,8 +21,11 @@
 // get_weekday(iter_type s, iter_type end, ios_base& str,
 //             ios_base::iostate& err, tm* t) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
index a04cb2a0475bf..4900cf1945941 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
@@ -29,8 +29,11 @@
 //     ~time_put_byname();
 // };
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 

>From 512da0b1008184e7663debd7763a388029c97469 Mon Sep 17 00:00:00 2001
From: cpplearner <cpplearner at outlook.com>
Date: Fri, 6 Feb 2026 01:44:59 +0800
Subject: [PATCH 2/3] Include `<ios>` and `<ctime>` in other time facets

---
 .../locale.time.get.members/get_monthname.pass.cpp           | 1 +
 .../locale.time.get.members/get_monthname_wide.pass.cpp      | 5 ++++-
 .../locale.time.get/locale.time.get.members/get_one.pass.cpp | 1 +
 .../locale.time.get.members/get_time.pass.cpp                | 1 +
 .../locale.time.get.members/get_time_wide.pass.cpp           | 5 ++++-
 .../locale.time.get.members/get_weekday.pass.cpp             | 1 +
 .../locale.time.get.members/get_weekday_wide.pass.cpp        | 5 ++++-
 .../locale.time.put/locale.time.put.members/put1.pass.cpp    | 4 +++-
 .../locale.time.put/locale.time.put.members/put2.pass.cpp    | 5 ++++-
 9 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
index 10d91715991b2..32acc7329b970 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
@@ -16,6 +16,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
index 9a872e21d291a..3ff9164056415 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
@@ -16,8 +16,11 @@
 
 // XFAIL: no-wide-characters
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
index 16a8eaa20b24d..e6f7659fe0f2f 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
@@ -15,6 +15,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
index 4d5b5edcdb693..21c4a8361730d 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
@@ -16,6 +16,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
index a7425a17f3d1e..a5c5724cb8f6e 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
@@ -16,8 +16,11 @@
 
 // XFAIL: no-wide-characters
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
index 21780e59081db..43659d5a1651f 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
@@ -16,6 +16,7 @@
 
 #include <cassert>
 #include <ctime>
+#include <ios>
 #include <locale>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
index 2e63114c1f4aa..e39168031df1f 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
@@ -16,8 +16,11 @@
 
 // XFAIL: no-wide-characters
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
index e65b50da652da..b80eeb00e7c59 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
@@ -13,9 +13,11 @@
 // iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t,
 //               const charT* pattern, const charT* pat_end) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
 #include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
index ab5e546cef2fb..e82f557efb7d7 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
@@ -13,8 +13,11 @@
 // iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t,
 //               char format, char modifier = 0) const;
 
-#include <locale>
 #include <cassert>
+#include <ctime>
+#include <ios>
+#include <locale>
+
 #include "test_macros.h"
 #include "test_iterators.h"
 

>From 64e26475ff44b4799911b0d63bda712aa910870d Mon Sep 17 00:00:00 2001
From: cpplearner <cpplearner at outlook.com>
Date: Fri, 6 Feb 2026 01:46:03 +0800
Subject: [PATCH 3/3] `std::`-qualify `tm`

---
 .../category.time/locale.time.put.byname/put1.pass.cpp          | 2 +-
 .../locale.time.put/locale.time.put.members/put1.pass.cpp       | 2 +-
 .../locale.time.put/locale.time.put.members/put2.pass.cpp       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
index 4900cf1945941..b6bcfc935393f 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
@@ -52,7 +52,7 @@ class my_facet
 int main(int, char**)
 {
     char str[200];
-    tm t;
+    std::tm t;
     t.tm_sec = 6;
     t.tm_min = 3;
     t.tm_hour = 13;
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
index b80eeb00e7c59..06dd59fa5a691 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
@@ -35,7 +35,7 @@ int main(int, char**)
 {
     const my_facet f(1);
     char str[200];
-    tm t;
+    std::tm t;
     t.tm_sec = 6;
     t.tm_min = 3;
     t.tm_hour = 13;
diff --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
index e82f557efb7d7..d7f61e10f2d99 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
@@ -35,7 +35,7 @@ int main(int, char**)
 {
     const my_facet f(1);
     char str[200];
-    tm t = {};
+    std::tm t = {};
     t.tm_sec = 6;
     t.tm_min = 3;
     t.tm_hour = 13;



More information about the libcxx-commits mailing list