Blame test-c/n_11.c

Packit Service 8bf002
/* n_11.c:  Operator "defined" in #if or #elif directive.   */
Packit Service 8bf002
Packit Service 8bf002
#include    "defs.h"
Packit Service 8bf002
Packit Service 8bf002
#define MACRO_abc   abc
Packit Service 8bf002
#define MACRO_0     0
Packit Service 8bf002
#define ZERO_TOKEN
Packit Service 8bf002
Packit Service 8bf002
main( void)
Packit Service 8bf002
{
Packit Service 8bf002
    int     abc = 1, a = 0;
Packit Service 8bf002
Packit Service 8bf002
    fputs( "started\n", stderr);
Packit Service 8bf002
Packit Service 8bf002
/* 11.1:    */
Packit Service 8bf002
#if     defined a
Packit Service 8bf002
    assert( a);
Packit Service 8bf002
#else
Packit Service 8bf002
    assert( MACRO_abc);
Packit Service 8bf002
#endif
Packit Service 8bf002
#if     defined (MACRO_abc)
Packit Service 8bf002
    assert( MACRO_abc);
Packit Service 8bf002
#else
Packit Service 8bf002
    assert( a);
Packit Service 8bf002
#endif
Packit Service 8bf002
Packit Service 8bf002
/* 11.2:    "defined" is an unary operator whose result is 1 or 0.  */
Packit Service 8bf002
#if     defined MACRO_0 * 3 != 3
Packit Service 8bf002
    fputs( "Bad handling of defined operator.\n", stderr);
Packit Service 8bf002
    exit( 1);
Packit Service 8bf002
#endif
Packit Service 8bf002
#if     (!defined ZERO_TOKEN != 0) || (-defined ZERO_TOKEN != -1)
Packit Service 8bf002
    fputs( "Bad grouping of defined, -, ! in #if expression.\n", stderr);
Packit Service 8bf002
    exit( 1);
Packit Service 8bf002
#endif
Packit Service 8bf002
Packit Service 8bf002
    fputs( "success\n", stderr);
Packit Service 8bf002
    return  0;
Packit Service 8bf002
}
Packit Service 8bf002