1struct S  {
2    float f;
3};
4
5uniform int u;
6
7void assign_to_literal()                      { 1 = 2; }
8void assign_to_uniform()                      { u = 0; }
9void assign_to_const()                        { const int x = 1; x = 0; }
10
11void assign_to_const_swizzle()                { const half4 x = half4(1); x.w = 0; }
12void assign_to_repeated_swizzle()             { half4 x; x.yy = half2(0); }
13
14void assign_to_foldable_ternary_const_left()  { const float l = 1; float r; (true ? l : r) = 0; }
15void assign_to_foldable_ternary_const_right() { float l; const float r = 1; (false ? l : r) = 0; }
16void assign_to_foldable_ternary_const_both()  { const float l = 1; const float r = 1; (true ? l : r) = 0; }
17void assign_to_unfoldable_ternary()           { float l, r; (sqrt(1) > 0 ? l : r) = 0; }
18void assign_to_unary_minus()                  { float x; -x = 0; }
19void assign_to_unary_plus()                   { float x; +x = 0; }  // TODO(skbug.com/10766)
20
21void assign_to_const_param(const int x)          { x = 0; }
22void assign_to_const_array_param(const int x[1]) { x[0] = 0; }
23void assign_to_const_struct_param(const S s)     { s.f = 0; }
24