Blame cpp-test/test-t/n_bool.C

Packit b40e2e
/* n_bool.C */
Packit b40e2e
/*
Packit b40e2e
 * On C++:  'true' and 'false' are evaluated 1 and 0 respectively.
Packit b40e2e
 *      and logical AND, logical OR are evaluated boolean.
Packit b40e2e
 */
Packit b40e2e
Packit b40e2e
/*  Valid block;    */
Packit b40e2e
Packit b40e2e
#define MACRO   1
Packit b40e2e
#define MACRO3  3
Packit b40e2e
Packit b40e2e
#if MACRO == true
Packit b40e2e
    Valid block 1
Packit b40e2e
#else
Packit b40e2e
    non-Valid block;
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
#if (MACRO && MACRO3) == true
Packit b40e2e
    Valid block 2
Packit b40e2e
#else
Packit b40e2e
    non-Valid block;
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* { dg-do preprocess }
Packit b40e2e
   { dg-options "-std=c++98" }
Packit b40e2e
   { dg-final { if ![file exist n_bool.i] { return }                    } }
Packit b40e2e
   { dg-final { if \{ [grep n_bool.i "Valid block 1"] != ""     \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_bool.i "Valid block 2"] != ""     \} \{   } }
Packit b40e2e
   { dg-final { return \} \}                                            } }
Packit b40e2e
   { dg-final { fail "n_bool.C: boolean literal"                        } }
Packit b40e2e
 */
Packit b40e2e