[libcxx-commits] [libcxx] [libc++] Fix unnecessary flushes in std::print() on POSIX (PR #70321)

Dimitrij Mijoski via libcxx-commits libcxx-commits at lists.llvm.org
Tue Mar 10 03:07:41 PDT 2026


================
@@ -316,9 +301,15 @@ __vprint_unicode([[maybe_unused]] FILE* __stream,
   // Windows there is a different API. This API requires transcoding.
 
 #      ifndef _LIBCPP_WIN32API
-  __print::__vprint_unicode_posix(__stream, __fmt, __args, __write_nl, __print::__is_terminal(__stream));
+  __print::__vprint_nonunicode(__stream, __fmt, __args, __write_nl);
 #      elif _LIBCPP_HAS_WIDE_CHARACTERS
-  __print::__vprint_unicode_windows(__stream, __fmt, __args, __write_nl, __print::__is_terminal(__stream));
+  if (__print::__is_terminal(__stream)) {
+    // TODO PRINT Should flush errors throw too?
+    std::fflush(__stream);
----------------
dimztimz wrote:

Here is the flush.

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


More information about the libcxx-commits mailing list