Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.jason/bool.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { 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;