summaryrefslogtreecommitdiff
path: root/tests/preprocessor/paste-non-expansion.slang
blob: 8270db6768a88bbd454b9a9da5b959198ff75ac9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//DIAGNOSTIC_TEST:SIMPLE:-E

// NOTE! This test should *fail*, if preprocessor is working correctly!

// This demonstrates the existance of a bug in Slang preprocessor macro expansion. Could be due to incorrect paste handling
// or perhaps the rules around parameter expansion.

#define CONCAT2(x, y) x ## y
#define CONCAT(x, y) CONCAT2(x, y)

#define SOMETHING someThing

// Should be someThingElse
CONCAT(SOMETHING, Else)
// Should be SOMETHINGAnother, but Slang expands to produce someThingAnother
CONCAT2(SOMETHING, Another)