[libcxx-commits] [libcxx] [libc++] Add missing includes in the locale headers (PR #213035)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jul 30 07:30:09 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Louis Dionne (ldionne)

<details>
<summary>Changes</summary>

Several headers use entities from <__locale> but rely on picking them up transitively, in most cases through <ios>. Fix this in preparation for splitting up <__locale>.

---
Full diff: https://github.com/llvm/llvm-project/pull/213035.diff


6 Files Affected:

- (modified) libcxx/include/__filesystem/path.h (+2-1) 
- (modified) libcxx/include/__locale (+2) 
- (modified) libcxx/include/__locale_dir/num.h (+1) 
- (modified) libcxx/include/__locale_dir/time.h (+1) 
- (modified) libcxx/include/__locale_dir/wbuffer_convert.h (+1) 
- (modified) libcxx/include/sstream (+1) 


``````````diff
diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h
index a63c4ee611ebf..68250d8f0e04d 100644
--- a/libcxx/include/__filesystem/path.h
+++ b/libcxx/include/__filesystem/path.h
@@ -29,7 +29,8 @@
 #include <string_view>
 
 #if _LIBCPP_HAS_LOCALIZATION
-#  include <iomanip> // for quoted
+#  include <__locale> // for __narrow_to_utf8 and __widen_from_utf8
+#  include <iomanip>  // for quoted
 #endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index 28bc17f8368a6..87307ea008a89 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -15,6 +15,7 @@
 
 #if _LIBCPP_HAS_LOCALIZATION
 
+#  include <__fwd/ios.h>
 #  include <__locale_dir/locale_base_api.h>
 #  include <__memory/addressof.h>
 #  include <__memory/shared_count.h>
@@ -26,6 +27,7 @@
 #  include <clocale>
 #  include <cstdint>
 #  include <cstdlib>
+#  include <stdexcept>
 #  include <string>
 #  include <text_encoding>
 
diff --git a/libcxx/include/__locale_dir/num.h b/libcxx/include/__locale_dir/num.h
index d50d0e9ba4ab8..3c341c7779ab1 100644
--- a/libcxx/include/__locale_dir/num.h
+++ b/libcxx/include/__locale_dir/num.h
@@ -18,6 +18,7 @@
 #include <__config>
 #include <__iterator/istreambuf_iterator.h>
 #include <__iterator/ostreambuf_iterator.h>
+#include <__locale>
 #include <__locale_dir/check_grouping.h>
 #include <__locale_dir/get_c_locale.h>
 #include <__locale_dir/pad_and_output.h>
diff --git a/libcxx/include/__locale_dir/time.h b/libcxx/include/__locale_dir/time.h
index 7db1cc660cd30..4c082e0e40944 100644
--- a/libcxx/include/__locale_dir/time.h
+++ b/libcxx/include/__locale_dir/time.h
@@ -11,6 +11,7 @@
 
 #include <__algorithm/copy.h>
 #include <__config>
+#include <__locale>
 #include <__locale_dir/get_c_locale.h>
 #include <__locale_dir/scan_keyword.h>
 #include <ios>
diff --git a/libcxx/include/__locale_dir/wbuffer_convert.h b/libcxx/include/__locale_dir/wbuffer_convert.h
index 9c87fac6cf193..08df30a1183f0 100644
--- a/libcxx/include/__locale_dir/wbuffer_convert.h
+++ b/libcxx/include/__locale_dir/wbuffer_convert.h
@@ -11,6 +11,7 @@
 
 #include <__algorithm/reverse.h>
 #include <__config>
+#include <__locale>
 #include <__string/char_traits.h>
 #include <ios>
 #include <streambuf>
diff --git a/libcxx/include/sstream b/libcxx/include/sstream
index d13ba265b4674..0c1aa65904241 100644
--- a/libcxx/include/sstream
+++ b/libcxx/include/sstream
@@ -320,6 +320,7 @@ typedef basic_stringstream<wchar_t> wstringstream;
 #  if _LIBCPP_HAS_LOCALIZATION
 
 #    include <__fwd/sstream.h>
+#    include <__locale>
 #    include <__ostream/basic_ostream.h>
 #    include <__type_traits/is_convertible.h>
 #    include <__utility/swap.h>

``````````

</details>


https://github.com/llvm/llvm-project/pull/213035


More information about the libcxx-commits mailing list