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