libstdc++.exp (check_v3_target_stdint): New.
2008-07-07 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/lib/libstdc++.exp (check_v3_target_stdint): New. * testsuite/lib/dg-options.exp (dg-require-cstdint): New. * testsuite/20_util/ratio/cons/cons1.cc: Use it. * testsuite/20_util/ratio/cons/cons_overflow.cc: Likewise. * testsuite/20_util/ratio/operations/ops1.cc: Likewise. * testsuite/20_util/ratio/operations/ops2.cc: Likewise. * testsuite/20_util/ratio/operations/ops3.cc: Likewise. * testsuite/20_util/ratio/operations/ops_overflow.cc: Likewise. * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise. * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise. * include/std/type_traits: Fix comment typo. From-SVN: r137612
This commit is contained in:
parent
d508e6f85f
commit
a7543cfdcd
12 changed files with 162 additions and 116 deletions
|
@ -1,3 +1,18 @@
|
|||
2008-07-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* testsuite/lib/libstdc++.exp (check_v3_target_stdint): New.
|
||||
* testsuite/lib/dg-options.exp (dg-require-cstdint): New.
|
||||
* testsuite/20_util/ratio/cons/cons1.cc: Use it.
|
||||
* testsuite/20_util/ratio/cons/cons_overflow.cc: Likewise.
|
||||
* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
|
||||
* testsuite/20_util/ratio/operations/ops2.cc: Likewise.
|
||||
* testsuite/20_util/ratio/operations/ops3.cc: Likewise.
|
||||
* testsuite/20_util/ratio/operations/ops_overflow.cc: Likewise.
|
||||
* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
|
||||
* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
|
||||
|
||||
* include/std/type_traits: Fix comment typo.
|
||||
|
||||
2008-07-06 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* include/std/system_error (is_error_code_enum): Use identifier
|
||||
|
|
|
@ -203,13 +203,13 @@ namespace std
|
|||
: public integral_constant<bool, __has_trivial_destructor(_Tp)>
|
||||
{ };
|
||||
|
||||
/// has_nothrow_default_destructor
|
||||
/// has_nothrow_default_constructor
|
||||
template<typename _Tp>
|
||||
struct has_nothrow_default_constructor
|
||||
: public integral_constant<bool, __has_nothrow_constructor(_Tp)>
|
||||
{ };
|
||||
|
||||
/// has_nothrow_copy_destructor
|
||||
/// has_nothrow_copy_constructor
|
||||
template<typename _Tp>
|
||||
struct has_nothrow_copy_constructor
|
||||
: public integral_constant<bool, __has_nothrow_copy(_Tp)>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// Copyright (C) 2008 Free Software Foundation
|
||||
//
|
||||
|
@ -21,8 +22,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -31,10 +30,10 @@ test01()
|
|||
VERIFY(( std::ratio_equal<std::ratio<2,6>, std::ratio<1,3>>::value == 1 ));
|
||||
VERIFY(( std::ratio_equal<std::ratio<2,6>, std::ratio<1,4>>::value == 0 ));
|
||||
|
||||
VERIFY(( std::ratio_not_equal<std::ratio<2,6>,
|
||||
std::ratio<1,3>>::value == 0 ));
|
||||
VERIFY(( std::ratio_not_equal<std::ratio<2,6>,
|
||||
std::ratio<1,4>>::value == 1 ));
|
||||
VERIFY( (std::ratio_not_equal<std::ratio<2,6>,
|
||||
std::ratio<1,3>>::value == 0) );
|
||||
VERIFY( (std::ratio_not_equal<std::ratio<2,6>,
|
||||
std::ratio<1,4>>::value == 1) );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -42,46 +41,42 @@ test02()
|
|||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
VERIFY(( std::ratio_less<std::ratio<1,4>, std::ratio<1,3>>::value == 1 ));
|
||||
VERIFY(( std::ratio_less<std::ratio<-1,3>, std::ratio<1,3>>::value == 1 ));
|
||||
VERIFY( (std::ratio_less<std::ratio<1,4>, std::ratio<1,3>>::value == 1) );
|
||||
VERIFY( (std::ratio_less<std::ratio<-1,3>, std::ratio<1,3>>::value == 1) );
|
||||
|
||||
VERIFY(( std::ratio_less<std::ratio<1,3>, std::ratio<1,4>>::value == 0 ));
|
||||
VERIFY(( std::ratio_less<std::ratio<1,3>, std::ratio<-1,3>>::value == 0 ));
|
||||
VERIFY( (std::ratio_less<std::ratio<1,3>, std::ratio<1,4>>::value == 0) );
|
||||
VERIFY( (std::ratio_less<std::ratio<1,3>, std::ratio<-1,3>>::value == 0) );
|
||||
|
||||
VERIFY(( std::ratio_less_equal<std::ratio<-1,3>,
|
||||
std::ratio<-1,3>>::value == 1 ));
|
||||
VERIFY(( std::ratio_less_equal<std::ratio<1,4>,
|
||||
std::ratio<1,3>>::value == 1 ));
|
||||
VERIFY( (std::ratio_less_equal<std::ratio<-1,3>,
|
||||
std::ratio<-1,3>>::value == 1) );
|
||||
VERIFY( ( std::ratio_less_equal<std::ratio<1,4>,
|
||||
std::ratio<1,3>>::value == 1) );
|
||||
|
||||
VERIFY(( std::ratio_less_equal<std::ratio<1,4>,
|
||||
std::ratio<-1,3>>::value == 0 ));
|
||||
VERIFY(( std::ratio_less_equal<std::ratio<1,3>,
|
||||
std::ratio<-1,3>>::value == 0 ));
|
||||
VERIFY( (std::ratio_less_equal<std::ratio<1,4>,
|
||||
std::ratio<-1,3>>::value == 0) );
|
||||
VERIFY( (std::ratio_less_equal<std::ratio<1,3>,
|
||||
std::ratio<-1,3>>::value == 0) );
|
||||
|
||||
VERIFY(( std::ratio_greater<std::ratio<1,3>, std::ratio<1,4>>::value == 1 ));
|
||||
VERIFY(( std::ratio_greater<std::ratio<1,3>, std::ratio<-1,3>>::value == 1 ));
|
||||
VERIFY( (std::ratio_greater<std::ratio<1,3>, std::ratio<1,4>>::value == 1) );
|
||||
VERIFY( (std::ratio_greater<std::ratio<1,3>, std::ratio<-1,3>>::value == 1) );
|
||||
|
||||
VERIFY(( std::ratio_greater<std::ratio<1,4>, std::ratio<1,3>>::value == 0 ));
|
||||
VERIFY(( std::ratio_greater<std::ratio<-1,3>, std::ratio<1,3>>::value == 0 ));
|
||||
VERIFY( (std::ratio_greater<std::ratio<1,4>, std::ratio<1,3>>::value == 0) );
|
||||
VERIFY( (std::ratio_greater<std::ratio<-1,3>, std::ratio<1,3>>::value == 0) );
|
||||
|
||||
VERIFY(( std::ratio_greater_equal<std::ratio<1,3>,
|
||||
std::ratio<1,3>>::value == 1 ));
|
||||
VERIFY(( std::ratio_greater_equal<std::ratio<1,3>,
|
||||
std::ratio<-1,3>>::value == 1 ));
|
||||
|
||||
VERIFY(( std::ratio_greater_equal<std::ratio<-1,3>,
|
||||
std::ratio<1,3>>::value == 0 ));
|
||||
VERIFY(( std::ratio_greater_equal<std::ratio<1,4>,
|
||||
std::ratio<1,3>>::value == 0 ));
|
||||
VERIFY( (std::ratio_greater_equal<std::ratio<1,3>,
|
||||
std::ratio<1,3>>::value == 1) );
|
||||
VERIFY( (std::ratio_greater_equal<std::ratio<1,3>,
|
||||
std::ratio<-1,3>>::value == 1) );
|
||||
|
||||
VERIFY( (std::ratio_greater_equal<std::ratio<-1,3>,
|
||||
std::ratio<1,3>>::value == 0) );
|
||||
VERIFY( (std::ratio_greater_equal<std::ratio<1,4>,
|
||||
std::ratio<1,3>>::value == 0) );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
test02();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// Copyright (C) 2008 Free Software Foundation
|
||||
//
|
||||
|
@ -21,8 +22,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
static const std::intmax_t M = INTMAX_MAX;
|
||||
|
||||
void
|
||||
|
@ -30,27 +29,23 @@ test01()
|
|||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
//no overflow with same denominator
|
||||
VERIFY(( std::ratio_less<std::ratio<M - 2, M>,
|
||||
std::ratio<M - 1, M>>::value == 1 ) );
|
||||
// No overflow with same denominator
|
||||
VERIFY( (std::ratio_less<std::ratio<M - 2, M>,
|
||||
std::ratio<M - 1, M>>::value == 1) );
|
||||
|
||||
VERIFY(( std::ratio_less<std::ratio<M - 1, M>,
|
||||
std::ratio<M - 2, M>>::value == 0 ) );
|
||||
|
||||
//no overflow if signs differ
|
||||
VERIFY(( std::ratio_less<std::ratio<-M, M - 1>,
|
||||
std::ratio<M - 1, M - 2>>::value == 1 ) );
|
||||
VERIFY( (std::ratio_less<std::ratio<M - 1, M>,
|
||||
std::ratio<M - 2, M>>::value == 0) );
|
||||
|
||||
// No overflow if signs differ
|
||||
VERIFY( (std::ratio_less<std::ratio<-M, M - 1>,
|
||||
std::ratio<M - 1, M - 2>>::value == 1) );
|
||||
|
||||
VERIFY(( std::ratio_less<std::ratio<M - 1, M - 2>,
|
||||
std::ratio<-M, M - 1>>::value == 0 ) );
|
||||
VERIFY( (std::ratio_less<std::ratio<M - 1, M - 2>,
|
||||
std::ratio<-M, M - 1>>::value == 0) );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -46,12 +45,8 @@ test01()
|
|||
VERIFY( r3.den == r0.den );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-do compile }
|
||||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// Copyright (C) 2008 Free Software Foundation
|
||||
//
|
||||
|
@ -21,8 +22,6 @@
|
|||
|
||||
#include <ratio>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -48,11 +47,9 @@ test04()
|
|||
std::ratio<1,0> r1;
|
||||
}
|
||||
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 36 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 42 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 48 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 35 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 47 }
|
||||
// { dg-error "denominator cannot be zero" "" { target *-*-* } 150 }
|
||||
// { dg-error "out of range" "" { target *-*-* } 151 }
|
||||
// { dg-excess-errors "In instantiation of" }
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -32,8 +31,8 @@ test01()
|
|||
|
||||
std::ratio_add<std::ratio<3,8>, std::ratio<5,12>>::type r;
|
||||
|
||||
VERIFY( r.num == 19);
|
||||
VERIFY( r.den == 24);
|
||||
VERIFY( r.num == 19 );
|
||||
VERIFY( r.den == 24 );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -42,8 +41,8 @@ test02()
|
|||
bool test __attribute__((unused)) = true;
|
||||
std::ratio_subtract<std::ratio<3,8>, std::ratio<5,12>>::type r;
|
||||
|
||||
VERIFY( r.num == -1);
|
||||
VERIFY( r.den == 24);
|
||||
VERIFY( r.num == -1 );
|
||||
VERIFY( r.den == 24 );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -52,8 +51,8 @@ test03()
|
|||
bool test __attribute__((unused)) = true;
|
||||
std::ratio_multiply<std::ratio<3,8>, std::ratio<5,12>>::type r;
|
||||
|
||||
VERIFY( r.num == 5);
|
||||
VERIFY( r.den == 32);
|
||||
VERIFY( r.num == 5 );
|
||||
VERIFY( r.den == 32 );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -62,19 +61,15 @@ test04()
|
|||
bool test __attribute__((unused)) = true;
|
||||
std::ratio_divide<std::ratio<3,8>, std::ratio<5,12>>::type r;
|
||||
|
||||
VERIFY( r.num == 9);
|
||||
VERIFY( r.den == 10);
|
||||
VERIFY( r.num == 9 );
|
||||
VERIFY( r.den == 10 );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
test02();
|
||||
test03();
|
||||
test04();
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
typedef std::ratio<1, INTMAX_MAX> one_over_max;
|
||||
typedef std::ratio<2, INTMAX_MAX> two_over_max;
|
||||
typedef std::ratio<INTMAX_MAX, 1> max_over_one;
|
||||
|
@ -44,8 +43,8 @@ test01()
|
|||
std::ratio<INTMAX_MAX / 2, INTMAX_MAX / 2>,
|
||||
std::ratio<INTMAX_MAX / 2 , INTMAX_MAX / 2 + 1>>::type r2;
|
||||
|
||||
VERIFY( r2.num == INTMAX_MAX);
|
||||
VERIFY( r2.den == (INTMAX_MAX / 2) + 1);
|
||||
VERIFY( r2.num == INTMAX_MAX );
|
||||
VERIFY( r2.den == (INTMAX_MAX / 2) + 1 );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -62,17 +61,13 @@ test02()
|
|||
std::ratio<INTMAX_MAX / 2, INTMAX_MAX / 2>,
|
||||
std::ratio<INTMAX_MAX / 2 , INTMAX_MAX / 2 + 1>>::type r2;
|
||||
|
||||
VERIFY( r2.num == 1);
|
||||
VERIFY( r2.den == (INTMAX_MAX / 2) + 1);
|
||||
VERIFY( r2.num == 1 );
|
||||
VERIFY( r2.den == (INTMAX_MAX / 2) + 1 );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
test02();
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
#include <ratio>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -34,15 +33,15 @@ test01()
|
|||
std::ratio<2, INTMAX_MAX>,
|
||||
std::ratio<INTMAX_MAX, 2>>::type r1;
|
||||
|
||||
VERIFY( r1.num == 1);
|
||||
VERIFY( r1.den == 1);
|
||||
VERIFY( r1.num == 1 );
|
||||
VERIFY( r1.den == 1 );
|
||||
|
||||
std::ratio_multiply<
|
||||
std::ratio<INTMAX_MAX, 2>,
|
||||
std::ratio<2 , INTMAX_MAX - 1>>::type r2;
|
||||
|
||||
VERIFY( r2.num == INTMAX_MAX);
|
||||
VERIFY( r2.den == INTMAX_MAX - 1);
|
||||
VERIFY( r2.num == INTMAX_MAX );
|
||||
VERIFY( r2.den == INTMAX_MAX - 1 );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -54,24 +53,20 @@ test02()
|
|||
std::ratio<INTMAX_MAX, 2>,
|
||||
std::ratio<INTMAX_MAX, 2>>::type r1;
|
||||
|
||||
VERIFY( r1.num == 1);
|
||||
VERIFY( r1.den == 1);
|
||||
VERIFY( r1.num == 1 );
|
||||
VERIFY( r1.den == 1 );
|
||||
|
||||
std::ratio_divide<
|
||||
std::ratio<INTMAX_MAX-1, 2>,
|
||||
std::ratio<INTMAX_MAX, 2>>::type r2;
|
||||
|
||||
VERIFY( r2.num == INTMAX_MAX - 1);
|
||||
VERIFY( r2.den == INTMAX_MAX);
|
||||
VERIFY( r2.num == INTMAX_MAX - 1 );
|
||||
VERIFY( r2.den == INTMAX_MAX );
|
||||
}
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
test01();
|
||||
test02();
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-do compile }
|
||||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-require-cstdint "" }
|
||||
|
||||
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
|
||||
#include <ratio>
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
|
@ -38,14 +37,12 @@ test02()
|
|||
std::ratio_multiply<std::ratio<INTMAX_MAX>, std::ratio<INTMAX_MAX>>::type r2;
|
||||
}
|
||||
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 31 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 30 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 36 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 37 }
|
||||
// { dg-error "instantiated from here" "" { target *-*-* } 38 }
|
||||
// { dg-error "overflow in addition" "" { target *-*-* } 127 }
|
||||
// { dg-error "overflow in multiplication" "" { target *-*-* } 95 }
|
||||
// { dg-error "overflow in multiplication" "" { target *-*-* } 97 }
|
||||
// { dg-error "overflow in multiplication" "" { target *-*-* } 99 }
|
||||
// { dg-excess-errors "In instantiation of" }
|
||||
// { dg-excess-errors "out of range" }
|
||||
|
||||
#endif //_GLIBCXX_USE_C99_STDINT_TR1
|
||||
|
|
|
@ -88,3 +88,12 @@ proc dg-require-rvalref { args } {
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
proc dg-require-cstdint { args } {
|
||||
if { ![ check_v3_target_cstdint ] } {
|
||||
upvar dg-do-what dg-do-what
|
||||
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# libstdc++ "tool init file" for DejaGNU
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -939,7 +939,7 @@ proc check_v3_target_debug_mode { } {
|
|||
} else {
|
||||
set et_debug_mode 0
|
||||
|
||||
# Set up, compile, and execute a C++ test program that depends
|
||||
# Set up and compile a C++ test program that depends
|
||||
# on debug mode working.
|
||||
set src debug_mode[pid].cc
|
||||
set exe debug_mode[pid].exe
|
||||
|
@ -993,7 +993,7 @@ proc check_v3_target_parallel_mode { } {
|
|||
} else {
|
||||
set et_parallel_mode 0
|
||||
|
||||
# Set up, compile, and execute a C++ test program that depends
|
||||
# Set up and compile a C++ test program that depends
|
||||
# on parallel mode working.
|
||||
set src parallel_mode[pid].cc
|
||||
set exe parallel_mode[pid].exe
|
||||
|
@ -1021,3 +1021,61 @@ proc check_v3_target_parallel_mode { } {
|
|||
verbose "check_v3_target_parallel_mode: $et_parallel_mode" 2
|
||||
return $et_parallel_mode
|
||||
}
|
||||
|
||||
proc check_v3_target_cstdint { } {
|
||||
global cxxflags
|
||||
global DEFAULT_CXXFLAGS
|
||||
global et_cstdint
|
||||
|
||||
global tool
|
||||
|
||||
if { ![info exists et_cstdint_target_name] } {
|
||||
set et_cstdint_target_name ""
|
||||
}
|
||||
|
||||
# If the target has changed since we set the cached value, clear it.
|
||||
set current_target [current_target_name]
|
||||
if { $current_target != $et_cstdint_target_name } {
|
||||
verbose "check_v3_target_cstdint: `$et_cstdint_target_name'" 2
|
||||
set et_cstdint_target_name $current_target
|
||||
if [info exists et_cstdint] {
|
||||
verbose "check_v3_target_cstdint: removing cached result" 2
|
||||
unset et_cstdint
|
||||
}
|
||||
}
|
||||
|
||||
if [info exists et_cstdint] {
|
||||
verbose "check_v3_target_cstdint: using cached result" 2
|
||||
} else {
|
||||
set et_cstdint 0
|
||||
|
||||
# Set up and compile a C++0x test program that depends
|
||||
# on the C99 stdint facilities to be available.
|
||||
set src cstdint[pid].cc
|
||||
set exe cstdint[pid].exe
|
||||
|
||||
set f [open $src "w"]
|
||||
puts $f "#include <cstdint>"
|
||||
puts $f "int main()"
|
||||
puts $f "#ifdef _GLIBCXX_USE_C99_STDINT_TR1"
|
||||
puts $f "{ return 0; }"
|
||||
puts $f "#endif"
|
||||
close $f
|
||||
|
||||
set cxxflags_saved $cxxflags
|
||||
set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -std=gnu++0x -Werror"
|
||||
|
||||
set lines [v3_target_compile $src $exe executable ""]
|
||||
set cxxflags $cxxflags_saved
|
||||
file delete $src
|
||||
|
||||
if [string match "" $lines] {
|
||||
# No error message, compilation succeeded.
|
||||
set et_cstdint 1
|
||||
} else {
|
||||
verbose "check_v3_target_cstdint: compilation failed" 2
|
||||
}
|
||||
}
|
||||
verbose "check_v3_target_cstdint: $et_cstdint" 2
|
||||
return $et_cstdint
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue