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