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