| Run me through unifdef -UA |
| *** Nothing should be visible here: |
| #if defined A && defined B |
| hello world |
| #endif |
| #if defined A && B |
| hello world |
| #endif |
| #if defined A && 1 |
| hello world |
| #endif |
| #if defined A && (1 > 0) |
| hello world |
| #endif |
| #if defined B && defined A |
| hello world |
| #endif |
| #if B && defined A |
| hello world |
| #endif |
| #if 1 && defined A |
| hello world |
| #endif |
| #if (1 > 0) && defined A |
| hello world |
| #endif |
| #if defined A && (defined FOO || defined BAR) |
| hello world |
| #endif |
| #if (defined FOO || defined BAR) && defined A |
| hello world |
| #endif |
| |
| *** Everything should be visible here, but #if/#endif removed: |
| #if defined B || !defined A |
| hello world 1 |
| #endif |
| #if !defined A || defined B |
| hello world 2 (last) |
| #endif |
| |
| *** This should be unchanged (#if/#endif not removed): |
| #if defined A || defined B |
| I am here 1 |
| #endif |
| #if defined B || defined A |
| I am here 2 |
| #endif |
| I am here 3 |
| #if !defined FOO && !defined BAR \ |
| && !defined BAZ |
| # error "I am here 4" |
| #endif |
| I am here 5 |
| #if (!defined FOO \ |
| && (defined BAR || defined BAZ \ |
| || defined XYZ)) |
| I am here 6 |
| #endif |
| I am here 7 |
| #if !defined FOO \ |
| && defined BAR |
| I am here 8 |
| #endif |
| I am here 9 (last) |
| |
| *** End |