Blame test-c/u_1_25.c

Packit Service 8bf002
/* u_1_25.c:    Undefined behaviors on undefined macro argument.    */
Packit Service 8bf002
Packit Service 8bf002
#include    <stdio.h>
Packit Service 8bf002
#define str( a)     # a
Packit Service 8bf002
#define sub( x, y)  (x - y)
Packit Service 8bf002
#define SUB         sub
Packit Service 8bf002
Packit Service 8bf002
main( void)
Packit Service 8bf002
{
Packit Service 8bf002
    int     a = 1, b = 2;
Packit Service 8bf002
Packit Service 8bf002
/* u.1.25:  Macro argument otherwise parsed as a directive. */
Packit Service 8bf002
/*  "#define NAME"; or other undefined behaviour.   */
Packit Service 8bf002
    puts( str(
Packit Service 8bf002
#define NAME
Packit Service 8bf002
    ));
Packit Service 8bf002
Packit Service 8bf002
#if 0   /* Added by C90: Corrigendum 1 (1994) and deleted by C99    */
Packit Service 8bf002
/* u.1.26:  Expanded macro replacement list end with name of function-like
Packit Service 8bf002
        macro.  */
Packit Service 8bf002
    SUB( a, b);
Packit Service 8bf002
#endif
Packit Service 8bf002
Packit Service 8bf002
    return  0;
Packit Service 8bf002
}
Packit Service 8bf002