URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.jason/] [bool.C] - Rev 12
Compare with Previous | Blame | View Log
// { dg-do assemble }
// Testcase for uses of bool.
int i,j,k;
/* Check that types of certain expressions are bool. */
void f ()
{
i ? j == k : true;
i ? j < k : true;
i ? j && k : true;
}
/* Check that g++ can find a conversion to bool when one exists. */
struct A { operator char * (); } a;
struct B { operator int (); } b;
struct C { operator float (); } c;
struct D { operator bool (); } d;
struct E { operator int E::* (); } e;
void g ()
{
a || true;
b || true;
c || true; // { dg-bogus "" }
d || true;
e || true;
}
/* Check for support in templates. */
template <class T> struct F { };
template class F<bool>;
template <class T> void f (T, bool) { }
template void f (bool, bool);
/* Special cases. */
void h ()
{
/* Used to cause infinite recursion. */
i&1 || true;
/* Should find conversion path to int. */
d == true;
}
bool boo = -1;