// This should produce "RIGHT" and not "WRONG" #define WR RI #define ONG GHT #define REPLACE(WR, ONG) WR##ONG #define REPLACE2(WR, ONG) REPLACE(WR, ONG) float REPLACE2(WR, ONG); float4 main() : COLOR { return RIGHT; }