1bf215546Sopenharmony_ci#define e THIS_SHOULD_NOT_BE_EXPANDED
2bf215546Sopenharmony_ci#define E NOR_THIS
3bf215546Sopenharmony_ci#define p NOT_THIS_EITHER
4bf215546Sopenharmony_ci#define P AND_SURELY_NOT_THIS
5bf215546Sopenharmony_ci#define OK CRAZY_BUT_TRUE_THIS_NEITHER
6bf215546Sopenharmony_ci
7bf215546Sopenharmony_ci/* This one is actually meant to be expanded */
8bf215546Sopenharmony_ci#define MUST_EXPAND GO
9bf215546Sopenharmony_ci
10bf215546Sopenharmony_ci/* The following are "preprocessing numbers" and should not trigger macro
11bf215546Sopenharmony_ci * expansion. */
12bf215546Sopenharmony_ci1e
13bf215546Sopenharmony_ci1OK
14bf215546Sopenharmony_ci
15bf215546Sopenharmony_ci/* These are also "preprocessing numbers", so no expansion */
16bf215546Sopenharmony_ci123e+OK
17bf215546Sopenharmony_ci.23E+OK
18bf215546Sopenharmony_ci1.3e-OK
19bf215546Sopenharmony_ci12.E-OK
20bf215546Sopenharmony_ci123p+OK
21bf215546Sopenharmony_ci.23P+OK
22bf215546Sopenharmony_ci1.3p-OK
23bf215546Sopenharmony_ci12.P-OK
24bf215546Sopenharmony_ci123..OK
25bf215546Sopenharmony_ci.23.OK.OK
26bf215546Sopenharmony_ci
27bf215546Sopenharmony_ci/* Importantly, just before the MUST_EXPAND in each of these, the preceding
28bf215546Sopenharmony_ci * "preprocessing number" ends and we have an actual expression. So the
29bf215546Sopenharmony_ci * MUST_EXPAND macro must be expanded (who would have though?) in each case. */
30bf215546Sopenharmony_ci123ef+MUST_EXPAND
31bf215546Sopenharmony_ci.23E3-MUST_EXPAND
32bf215546Sopenharmony_ci1.3e--MUST_EXPAND
33bf215546Sopenharmony_ci12.E-&MUST_EXPAND
34bf215546Sopenharmony_ci123p+OK+MUST_EXPAND
35bf215546Sopenharmony_ci.23P+OK;MUST_EXPAND
36bf215546Sopenharmony_ci1.3p-OK-MUST_EXPAND
37bf215546Sopenharmony_ci12.P-OK&MUST_EXPAND
38