yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
97068d8b
main
1#version 110 2 3int f (int a ,int b ,int c ) 4{ 5int a = b ;// ERROR, redefinition 6 7 { 8float a = float (a )+ 1.0 ;// okay 9 } 10 11return a ; 12} 13 14int f (int a ,int b ,int c );// okay to redeclare 15 16bool b ; 17float b (int a );// okay, b and b() are different 18 19float c (int a ); 20bool c ;// okay, and c() are different 21 22float f ;// okay f and f() are different 23float tan ;// okay, hides built-in function 24float sin (float x );// okay, can redefine built-in functions 25float cos (float x )// okay, can redefine built-in functions 26{ 27return 1.0 ; 28} 29bool radians (bool x )// okay, can overload built-in functions 30{ 31return true; 32} 33 34int gi = f (1 ,2 ,3 );// ERROR, can't call user-defined function from global scope 35 36void main () 37{ 38int g ();// okay 39g (); 40 41float sin ;// okay 42sin ; 43sin (0.7 );// okay 44f (1 ,2 ,3 ); 45 46float f ; 47f = 3.0 ; 48 49gl_Position = vec4 (f ); 50 51for (int f = 0 ;f < 10 ;++ f ) 52++ f ; 53 54int x = 1 ; 55 { 56float x = 2.0 ,/* 2nd x visible here */ y = x ;// y is initialized to 2 57int z = z ;// ERROR: z not previously defined. 58 } 59 { 60int x = x ;// x is initialized to '1' 61 } 62 63struct S 64 { 65int x ; 66 }; 67 { 68S S = S (0 );// 'S' is only visible as a struct and constructor 69S .x ;// 'S' is now visible as a variable 70 } 71 72int degrees ; 73degrees (3.2 ); 74 75 { 76S s ; 77s .x = 3 ; 78struct S {// okay, hides S 79bool b ; 80 }; 81S t ; 82t .b = true; 83struct S {// ERROR, redefinition of struct S 84float f ; 85 }; 86 } 87}