Commit 66caf47a by Paolo Carlini Committed by Paolo Carlini

re PR libstdc++/58850 (Conversion error in chrono)

2013-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58850
	* include/std/chrono (minutes, hours): Change typedefs to uniformly
	use int64_t.
	* testsuite/20_util/duration/arithmetic/58850.cc: New.

From-SVN: r203978
parent 021b0410
2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/58850
* include/std/chrono (minutes, hours): Change typedefs to uniformly
use int64_t.
* testsuite/20_util/duration/arithmetic/58850.cc: New.
2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/decimal/pr58815.cc: Fix thinko.
2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
......
......@@ -524,22 +524,22 @@ _GLIBCXX_END_NAMESPACE_VERSION
{ return !(__lhs < __rhs); }
/// nanoseconds
typedef duration<int64_t, nano> nanoseconds;
typedef duration<int64_t, nano> nanoseconds;
/// microseconds
typedef duration<int64_t, micro> microseconds;
typedef duration<int64_t, micro> microseconds;
/// milliseconds
typedef duration<int64_t, milli> milliseconds;
typedef duration<int64_t, milli> milliseconds;
/// seconds
typedef duration<int64_t> seconds;
typedef duration<int64_t> seconds;
/// minutes
typedef duration<int, ratio< 60>> minutes;
typedef duration<int64_t, ratio< 60>> minutes;
/// hours
typedef duration<int, ratio<3600>> hours;
typedef duration<int64_t, ratio<3600>> hours;
/// time_point
template<typename _Clock, typename _Dur>
......
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// Copyright (C) 2013 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <chrono>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
using namespace std::chrono;
typedef duration<std::int64_t, std::ratio<36 * 24 * 36525>> Years;
Years galactic_empire_age( 12067 );
VERIFY( duration_cast<seconds>( galactic_empire_age ).count()
== duration_cast<minutes>( galactic_empire_age ).count() * 60 );
VERIFY( duration_cast<minutes>( galactic_empire_age ).count()
== duration_cast<seconds>( galactic_empire_age ).count() / 60 );
}
int main()
{
test01();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment