diff --git a/include/fstream b/include/fstream index 4456c017..8e1b1fb6 100644 --- a/include/fstream +++ b/include/fstream @@ -549,7 +549,7 @@ basic_filebuf<_CharT, _Traits>::close() { __rt = this; unique_ptr __h(__file_, fclose); - if ((__cm_ & ios_base::out) && sync()) + if (sync()) __rt = 0; if (fclose(__h.release()) == 0) __file_ = 0; diff --git a/include/ostream b/include/ostream index b38326e4..c4e6b38b 100644 --- a/include/ostream +++ b/include/ostream @@ -1218,12 +1218,12 @@ typename enable_if < !is_lvalue_reference<_Stream>::value && is_base_of::value, - _Stream& + _Stream&& >::type operator<<(_Stream&& __os, const _Tp& __x) { __os << __x; - return __os; + return _VSTD::move(__os); } #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES