1 /* u_1_25.c:    Undefined behaviors on undefined macro argument.    */
2 
3 #include    <stdio.h>
4 #define str( a)     # a
5 #define sub( x, y)  (x - y)
6 #define SUB         sub
7 
main(void)8 main( void)
9 {
10     int     a = 1, b = 2;
11 
12 /* u.1.25:  Macro argument otherwise parsed as a directive. */
13 /*  "#define NAME"; or other undefined behaviour.   */
14     puts( str(
15 #define NAME
16     ));
17 
18 #if 0   /* Added by C90: Corrigendum 1 (1994) and deleted by C99    */
19 /* u.1.26:  Expanded macro replacement list end with name of function-like
20         macro.  */
21     SUB( a, b);
22 #endif
23 
24     return  0;
25 }
26 
27