On 10/25/2012 07:40 AM, jfons...@vmware.com wrote:
From: José Fonseca<jfons...@vmware.com>

---
  .../glsl2/comment-continuation-preprocessor.frag   |   34 ++++++++++++++++++++
  1 file changed, 34 insertions(+)
  create mode 100644 
tests/glslparsertest/glsl2/comment-continuation-preprocessor.frag

diff --git a/tests/glslparsertest/glsl2/comment-continuation-preprocessor.frag 
b/tests/glslparsertest/glsl2/comment-continuation-preprocessor.frag
new file mode 100644
index 0000000..21b889b
--- /dev/null
+++ b/tests/glslparsertest/glsl2/comment-continuation-preprocessor.frag
@@ -0,0 +1,34 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.20
+//
+// [end config]
+//
+// GLSL specification states that
+//
+//   Removal of new lines by the line-continuation character ( \ ) logically
+//   occurs before comments are processed.
+//
+// GNU cpp does the same. However NVIDIA accepts the shader below.
+//
+// This was seen with MindCAD 3D Viewer.
+//
+
+#define DECLARE_FOO()                                                      \
+    void foo(out vec4 color)                                               \
+    {                                                                      \
+        color = vec4(0, 1, 0, 1);                                          \
+                                                                           \
+//      if (0)                                                             \
+//      {                                                                  \
+//           color = vec4(0, 0, 1, 1) ;                                    \
+//      }                                                                  \
+    }
+
+DECLARE_FOO()
+
+void main()
+{
+     foo(gl_FragColor);
+}
+

I might beef-up the comment to point out that the first // in the macro effectively makes the rest of the macro's characters go away, and hence, produces a compilation error.

Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to