1*c8dee2aaSAndroid Build Coastguard Workeruniform float u; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerconst float c = 1; 4*c8dee2aaSAndroid Build Coastguard Worker float f = 1; 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Workerstruct S { float f; } s; 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker// Valid constant-expression initializers. Should not produce errors: 9*c8dee2aaSAndroid Build Coastguard Workervoid from_literal() { const float x = 0; } 10*c8dee2aaSAndroid Build Coastguard Workervoid from_const_global() { const float x = c; } 11*c8dee2aaSAndroid Build Coastguard Workervoid from_const_local() { const float x = 0; const float y = x; } 12*c8dee2aaSAndroid Build Coastguard Workervoid from_const_constructor() { const int i = int(c); } 13*c8dee2aaSAndroid Build Coastguard Workervoid from_expression() { const float x = 2 * c; } 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker// Invalid constant-expression initializers. Should all produce errors: 16*c8dee2aaSAndroid Build Coastguard Workervoid from_uniform() { const float x = u; } 17*c8dee2aaSAndroid Build Coastguard Workervoid from_parameter(float p) { const float x = p; } 18*c8dee2aaSAndroid Build Coastguard Workervoid from_const_parameter(const float p) { const float x = p; } 19*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_local() { float x = u; const float y = x; } 20*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_expression() { const float x = u + u; } 21*c8dee2aaSAndroid Build Coastguard Workervoid from_mixed_expression() { const float x = c + u; } 22*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_struct_field() { const float x = s.f; } 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker/*%%* 25*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 26*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 27*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 28*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 29*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 30*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 31*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression 32*c8dee2aaSAndroid Build Coastguard Worker*%%*/ 33