blob: 162e99822c864dfb9169ddbaccf0dd376718d243 [file] [log] [blame]
John Kessenichfbe01522013-06-12 06:13:17 +00001#version 300 es
2
3int f(int a, int b, int c)
4{
5 int a = b; // ERROR, redefinition
6
7 {
8 float a = float(a) + 1.0;
9 }
10
11 return a;
12}
13
14int f(int a, int b, int c); // okay to redeclare
15
16bool b;
17float b(int a); // ERROR: redefinition
18
John Kessenich3a4687d2013-12-11 22:38:19 +000019float c(int a);
20bool c; // ERROR: redefinition
21
John Kessenichfbe01522013-06-12 06:13:17 +000022float f; // ERROR: redefinition
23float tan; // ERROR: redefines built-in function
John Kessenicha4351c52013-11-11 04:21:31 +000024float sin(float x); // ERROR: can't redefine built-in functions
25float cos(float x) // ERROR: can't redefine built-in functions
John Kessenichfbe01522013-06-12 06:13:17 +000026{
27 return 1.0;
28}
John Kessenicha4351c52013-11-11 04:21:31 +000029bool radians(bool x) // ERROR: can't overload built-in functions
30{
31 return true;
32}
John Kessenichfbe01522013-06-12 06:13:17 +000033
34invariant gl_Position;
35
36void main()
37{
38 int g(); // ERROR: no local function declarations
39 g();
40
41 float sin; // okay
42 sin;
John Kessenich3a4687d2013-12-11 22:38:19 +000043 sin(0.7); // ERROR, use of hidden function
John Kessenichfbe01522013-06-12 06:13:17 +000044 f(1,2,3);
45
46 float f; // hides f()
47 f = 3.0;
48
49 gl_Position = vec4(f);
50
51 for (int f = 0; f < 10; ++f)
52 ++f;
53
54 int x = 1;
55 {
56 float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
57 int z = z; // ERROR: z not previously defined.
58 }
59 {
60 int x = x; // x is initialized to '1'
61 }
62
63 struct S
64 {
65 int x;
66 };
67 {
68 S S = S(0); // 'S' is only visible as a struct and constructor
69 S.x; // 'S' is now visible as a variable
70 }
John Kessenich3a4687d2013-12-11 22:38:19 +000071
72 int degrees;
73 degrees(3.2); // ERROR, use of hidden built-in function
John Kessenichfbe01522013-06-12 06:13:17 +000074}