#define EMP1(a)
#define EMP2(a, b)

#define EXP1(a) = a
#define EXP2(a, b) = a, b

struct A
{
    float4 a EMP1({1,2,3,4});                           // No PP arg errors
    float4 b EMP2({({{(({1,2,3,4}))}})}, {{1,2,3,4}});  // No PP arg errors
    float4 c EXP1({1,2,3,4});                           // ERROR: No PP arg errors, but init error
    float4 d EXP2({({{(({1,2,3,4}))}})}, {{1,2,3,4}});  // ERROR: No PP arg errors, but init error
};

void main()
{
    "a string"
}