1 /* Origin PR preprocessor/64803
2
3 This test ensures that the value the __LINE__ macro expands to is
4 constant and corresponds to the line of the macro expansion point
5 the function-like macro expansion it's part of.
6
7 { dg-do run }
8 { do-options -no-integrated-cpp } */
9
10 #include <assert.h>
11
12 #define C(a, b) a ## b
13 #define L(x) C(L, x)
14 #define M(a) int L(__LINE__) = __LINE__; assert(L(__LINE__) == __LINE__);
15
16 int
main()17 main()
18 {
19 M(a
20 );
21
22 assert(L19 == 19); /* 19 is the line number of the
23 macro expansion point of the
24 invocation of the M macro. Please
25 adjust in case the layout of this
26 file changes. */
27 return 0;
28 }
29