skia2/tests/sksl/errors/BitShiftFloat.sksl
Brian Osman bf2163f267 SkSL: Only allow bitwise ops on integral types
We were allowing these ops on floating point types. The resulting GLSL
would fail to compile. We also allowed >>= and <<= on vectors (but not
any of the other bitwise ops).

The newly added unit tests were failing (eg, not catching errors). New
results are correct.

Bug: skia:10707
Change-Id: I97b769f1ce59261361109a71061b42dc8ef3c74b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317393
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-17 18:12:34 +00:00

16 lines
318 B
Plaintext

// Expect 10 errors (one per function)
float x;
void shr_eq() { x >>= 1; }
void shl_eq() { x <<= 1; }
void and_eq() { x &= 1; }
void or_eq() { x |= 1; }
void xor_eq() { x ^= 1; }
void shr() { x = x >> 1; }
void shl() { x = x << 1; }
void and() { x = x & 1; }
void or() { x = x | 1; }
void xor() { x = x ^ 1; }