RUN:%clang_cc1 -E %s -pedantic -std=c++2a | FileCheck -strict-whitespace %s
#defineLPAREN()(#defineG(Q)42#defineF1(R,X,...)__VA_OPT__(G R X))1:int x =F1(LPAREN(),0,<:-);// CHECK: 1: int x = 42;
#defineF2(...)f(0__VA_OPT__(,) __VA_ARGS__)#defineEMP2:F2(EMP)// CHECK: 2: f(0 )
#defineH3(X,...) #__VA_OPT__(X##X X##X)3:H3(,0)// CHECK: 3: ""
#defineH4(X,...)__VA_OPT__(a X ## X) ## b
4:H4(,1)// CHECK: 4: a b
#defineH4B(X,...) a ## __VA_OPT__(X ## X b)
4B:H4B(,1)// CHECK: 4B: a b
#defineH5A(...)__VA_OPT__()/**/__VA_OPT__()#defineH5B(X) a ## X ## b
#defineH5C(X)H5B(X)5:H5C(H5A())// CHECK: 5: ab