mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-17 18:18:06 +02:00
Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Matt Turner <mattst88@gmail.com> Acked-by: Jose Fonseca <jfonseca@vmware.com>
37 lines
849 B
C
37 lines
849 B
C
#define e THIS_SHOULD_NOT_BE_EXPANDED
|
|
#define E NOR_THIS
|
|
#define p NOT_THIS_EITHER
|
|
#define P AND_SURELY_NOT_THIS
|
|
#define OK CRAZY_BUT_TRUE_THIS_NEITHER
|
|
|
|
/* This one is actually meant to be expanded */
|
|
#define MUST_EXPAND GO
|
|
|
|
/* The following are "preprocessing numbers" and should not trigger macro
|
|
* expansion. */
|
|
1e
|
|
1OK
|
|
|
|
/* These are also "preprocessing numbers", so no expansion */
|
|
123e+OK
|
|
.23E+OK
|
|
1.3e-OK
|
|
12.E-OK
|
|
123p+OK
|
|
.23P+OK
|
|
1.3p-OK
|
|
12.P-OK
|
|
123..OK
|
|
.23.OK.OK
|
|
|
|
/* Importantly, just before the MUST_EXPAND in each of these, the preceding
|
|
* "preprocessing number" ends and we have an actual expression. So the
|
|
* MUST_EXPAND macro must be expanded (who would have though?) in each case. */
|
|
123ef+MUST_EXPAND
|
|
.23E3-MUST_EXPAND
|
|
1.3e--MUST_EXPAND
|
|
12.E-&MUST_EXPAND
|
|
123p+OK+MUST_EXPAND
|
|
.23P+OK;MUST_EXPAND
|
|
1.3p-OK-MUST_EXPAND
|
|
12.P-OK&MUST_EXPAND
|