The preprocessor doesn't inhibit expansion when concatenating with an empty token. Here an example: #define EMPTY() #define DEFER(id) id EMPTY() #define A(p, ...) p ## __VA_ARGS__ // should inhibit expansion of ... #define B(p, ...) p __VA_ARGS__ #define TEST() 123 A(, DEFER(TEST)()) // should be TEST (), but clang expands to 123 B(, DEFER(TEST)()) // should be 123
*** Bug 15661 has been marked as a duplicate of this bug. ***
Fixed in r182699.