File: return-01.vert

package info (click to toggle)
piglit 0~git20200212-f4710c51b-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 106,972 kB
  • sloc: ansic: 263,763; xml: 48,941; python: 29,918; lisp: 19,789; cpp: 12,142; sh: 22; makefile: 20; pascal: 5
file content (35 lines) | stat: -rw-r--r-- 841 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// [config]
// 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

void A(int i) { }

void B(int i) {
	return A(i);
}

attribute vec4 vertex;

void main() {
	B(1);
	gl_Position = vertex;
}