/* Origin PR preprocessor/64803 This test ensures that the value the __LINE__ macro expands to is constant and corresponds to the line of the macro expansion point the function-like macro expansion it's part of. { dg-do run } { do-options -no-integrated-cpp } */ #include #define C(a, b) a ## b #define L(x) C(L, x) #define M(a) int L(__LINE__) = __LINE__; assert(L(__LINE__) == __LINE__); int main() { M(a ); assert(L19 == 19); /* 19 is the line number of the macro expansion point of the invocation of the M macro. Please adjust in case the layout of this file changes. */ return 0; }