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

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