[Piglit] [PATCH 11/11] glsl-1.10: Test that returning void from a void function is illegal.
Matt Turner
mattst88 at gmail.com
Fri May 24 18:28:08 PDT 2013
---
.../spec/glsl-1.10/compiler/expressions/return-01.vert | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/tests/spec/glsl-1.10/compiler/expressions/return-01.vert b/tests/spec/glsl-1.10/compiler/expressions/return-01.vert
index cf5a08b..e1ef736 100644
--- a/tests/spec/glsl-1.10/compiler/expressions/return-01.vert
+++ b/tests/spec/glsl-1.10/compiler/expressions/return-01.vert
@@ -1,8 +1,22 @@
// [config]
-// expect_result: pass
+// expect_result: fail
// glsl_version: 1.10
// [end config]
+/* The ARB_shading_language_420pack, GLSL ES 3.0, and GLSL 4.20
+ * specs add a clarification:
+ *
+ * "A void function can only use return without a return argument, even if
+ * the return argument has void type. Return statements only accept values:
+ *
+ * void func1() { }
+ * void func2() { return func1(); } // illegal return statement"
+ *
+ * Verify that returning void from a void function is illegal. Since it is a
+ * clarification rather than a spec change, this behavior is expected even
+ * without ARB_shading_language_420pack or before GLSL ES 3.0 or GLSL 4.20.
+ */
+
#ifdef GL_ES
precision mediump float;
#endif
@@ -10,8 +24,6 @@ precision mediump float;
void A(int i) { }
void B(int i) {
- // This is crazy, but not technically illegal. The value of A(i) has
- // void type, and the return type of the function is void.
return A(i);
}
--
1.8.1.5
More information about the Piglit
mailing list