blob: d838ef3c5a3c24dd73c42294552c5b7a0bd49184 [file] [log] [blame]
John Stilesdce4d3e2020-09-25 14:35:13 -04001struct S {
2 float f;
3};
John Stiles6798e5d2020-09-17 18:20:26 -04004
John Stilesdce4d3e2020-09-25 14:35:13 -04005uniform int u;
6
John Stilesc14defb2020-09-25 14:40:44 -04007void assign_to_literal() { 1 = 2; }
8void assign_to_uniform() { u = 0; }
Brian Osman4a015c52021-02-19 16:26:13 -05009void assign_to_const() { const int x = 1; x = 0; }
10
11void assign_to_const_swizzle() { const half4 x = half4(1); x.w = 0; }
John Stilesc14defb2020-09-25 14:40:44 -040012void assign_to_repeated_swizzle() { half4 x; x.yy = half2(0); }
Brian Osman4a015c52021-02-19 16:26:13 -050013
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; }
John Stiles639e8122021-05-24 10:52:23 -040017void assign_to_unfoldable_ternary() { float l, r; (u > 0 ? l : r) = 0; }
John Stilesc14defb2020-09-25 14:40:44 -040018void assign_to_unary_minus() { float x; -x = 0; }
19void assign_to_unary_plus() { float x; +x = 0; } // TODO(skbug.com/10766)
Brian Osmanffee4762021-02-19 16:29:50 -050020
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; }