33 lines
804 B
C++
33 lines
804 B
C++
|
/* 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" } }
|
||
|
*/
|
||
|
|