PP/HLSL: Fix #1424: support comma in nested curly braces for macro arg
diff --git a/Test/hlsl.pp.expand.frag b/Test/hlsl.pp.expand.frag
new file mode 100755
index 0000000..765d17e
--- /dev/null
+++ b/Test/hlsl.pp.expand.frag
@@ -0,0 +1,17 @@
+#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()
+{
+}