blob: 0f950038d1bd52dfbc24b8b9369507c2adcbc97f [file] [log] [blame]
/* 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 <assert.h>
#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;
}