33 lines
804 B
C++
Raw Normal View History

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