1#define P(a,b) P1(a,b)
2#define P1(a,b) a##b
3
4#define ONCE(x, y) (x ?: (x = y()))
5#define PREFIX
6
7extern int P(PREFIX, init) (void);
8
9int
10fun(void)
11{
12  static int memo;
13  return ONCE(memo, P(PREFIX, init));
14}
15