[libcxx-commits] [libcxx] [libc++] Optimize fstream::read (PR #165223)
Alan Phipps via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Nov 10 09:43:25 PST 2025
================
@@ -308,6 +308,19 @@ protected:
return basic_streambuf<_CharT, _Traits>::xsputn(__str, __len);
}
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL streamsize xsgetn(char_type* __str, streamsize __len) override {
+ if (__always_noconv_) {
+ const streamsize __n = std::min(this->egptr() - this->gptr(), __len);
+ if (__n != 0) {
+ traits_type::copy(__str, this->gptr(), __n);
+ this->__gbump_ptrdiff(__n);
+ }
+ if (__len - __n >= this->egptr() - this->eback())
+ return std::fread(__str + __n, sizeof(char_type), __len - __n, __file_);
----------------
evodius96 wrote:
I am also seeing downstream failure in ACE C++ test suite Cxx11/27/9/1/5/t_xsgetn_1.C where it appears application is accessing invalid memory.
https://github.com/llvm/llvm-project/pull/165223
More information about the libcxx-commits
mailing list