Blame cpp-test/test-t/n_13.c

Packit b40e2e
/* n_13.c:  Valid operators in #if expression.  */
Packit b40e2e
Packit b40e2e
/* Valid operators are (precedence in this order) :
Packit b40e2e
    defined, (unary)+, (unary)-, ~, !,
Packit b40e2e
    *, /, %,
Packit b40e2e
    +, -,
Packit b40e2e
    <<, >>,
Packit b40e2e
    <, >, <=, >=,
Packit b40e2e
    ==, !=,
Packit b40e2e
    &,
Packit b40e2e
    ^,
Packit b40e2e
    |,
Packit b40e2e
    &&,
Packit b40e2e
    ||,
Packit b40e2e
    ? :
Packit b40e2e
 */
Packit b40e2e
Packit b40e2e
/* 13.1:    Bit shift.  */
Packit b40e2e
#if     1 << 2 != 4 || 8 >> 1 != 4
Packit b40e2e
#error  Bad arithmetic of <<, >> operators.
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* 13.2:    Bitwise operators.  */
Packit b40e2e
#if     (3 ^ 5) != 6 || (3 | 5) != 7 || (3 & 5) != 1
Packit b40e2e
#error  Bad arithmetic of ^, |, & operators.
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* 13.3:    Result of ||, && operators is either of 1 or 0. */
Packit b40e2e
#if     (2 || 3) != 1 || (2 && 3) != 1 || (0 || 4) != 1 || (0 && 5) != 0
Packit b40e2e
#error  Bad arithmetic of ||, && operators.
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* 13.4:    ?, : operator.  */
Packit b40e2e
#if     (0 ? 1 : 2) != 2
Packit b40e2e
#error  Bad arithmetic of ?: operator.
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* { dg-do preprocess } */
Packit b40e2e