diff --git a/Test/baseResults/preprocessor.simple.vert.out b/Test/baseResults/preprocessor.simple.vert.out
index 56bfe010f9a16f02bb1215a3f0f0d3a1f52be98d..0c376736ea89ea362a4bcd38ab5a2906b9d70ec7 100644
--- a/Test/baseResults/preprocessor.simple.vert.out
+++ b/Test/baseResults/preprocessor.simple.vert.out
@@ -28,3 +28,33 @@ int main(){
   1.2 2E10 5u - 5l f
 }
 
+struct S {
+    int member1;
+    float member2;
+    vec4 member3;
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+void foo()
+{
+    S s;
+    s . member2 + s . member1;
+    s . member3 . zyx;
+    s . member2 . xxyz;
+    s . member2 . yyz;
+    s . member2 . xxyz();
+    s . member2 . yzy;
+                      vec3 a = vec3(0);vec3 b = a . zxyz;vec3 b = a . xxyz;vec3 b = a . yyz;vec3 b = a . xxyz();vec3 b = a .;vec3 b = a . z;
+}
+
diff --git a/Test/preprocessor.simple.vert b/Test/preprocessor.simple.vert
old mode 100644
new mode 100755
index 352227192bfb2e04325e45b4e6f3b808ffb62db3..29597204b788e852cf19de9c469567b57753fe22
--- a/Test/preprocessor.simple.vert
+++ b/Test/preprocessor.simple.vert
@@ -27,3 +27,33 @@ int main() {
   += -= *= /= %= <<= >>= &= |= ^=
   1.2 2E10 5u -5lf
 }
+
+struct S {
+    int member1;
+    float member2;
+    vec4 member3;
+};
+
+#define xyz xxyz
+#define yzy() yyz
+
+#define LIGHTING_COMMON_BRDF() \
+	vec3 a = vec3(0); \
+	vec3 b = a.zxyz;  \
+	vec3 b = a.xyz;   \
+	vec3 b = a.yzy();   \
+	vec3 b = a.xyz();   \
+	vec3 b = a.yzy;   \
+	vec3 b = a.z;
+
+void foo()
+{
+    S s;
+    s.member2 + s.member1;
+    s.member3.zyx;
+    s.member2.xyz;
+    s.member2.yzy();
+    s.member2.xyz();
+    s.member2.yzy;
+	LIGHTING_COMMON_BRDF()
+}