modernc.org/ccgo/v3@v3.16.14/lib/testdata/tcc-0.9.27/tests/pp/21.c (about)

     1  /* accept 'defined' as result of substitution */
     2  
     3  ----- 1 ------
     4  #define AAA 2
     5  #define BBB
     6  #define CCC (defined ( AAA ) && AAA > 1 && !defined BBB)
     7  #if !CCC
     8  OK
     9  #else
    10  NOT OK
    11  #endif
    12  
    13  ----- 2 ------
    14  #undef BBB
    15  #if CCC
    16  OK
    17  #else
    18  NOT OK
    19  #endif
    20  
    21  ----- 3 ------
    22  #define DEFINED defined
    23  #define DDD (DEFINED ( AAA ) && AAA > 1 && !DEFINED BBB)
    24  #if (DDD)
    25  OK
    26  #else
    27  NOT OK
    28  #endif
    29  
    30  ----- 4 ------
    31  #undef AAA
    32  #if !(DDD)
    33  OK
    34  #else
    35  NOT OK
    36  #endif