diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7b351a962ec7..85e96a382ced 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2013-05-28 Jonathan Wakely + + * src/c++11/compatibility-chrono.cc (steady_clock::now()): If + !_GLIBCXX_USE_GETTIMEOFDAY perform conversion inline instead of + calling non-existent from_time_t. + 2013-05-28 Rainer Orth * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: diff --git a/libstdc++-v3/src/c++11/compatibility-chrono.cc b/libstdc++-v3/src/c++11/compatibility-chrono.cc index fd67daec4c58..efc32f5ff955 100644 --- a/libstdc++-v3/src/c++11/compatibility-chrono.cc +++ b/libstdc++-v3/src/c++11/compatibility-chrono.cc @@ -78,7 +78,10 @@ namespace std _GLIBCXX_VISIBILITY(default) + chrono::microseconds(tv.tv_usec))); #else std::time_t __sec = std::time(0); - return system_clock::from_time_t(__sec); + // This is the conversion done by system_clock::from_time_t(__sec) + typedef chrono::time_point __from; + return time_point_cast + (__from(chrono::seconds(__sec))); #endif }