#version 310 es // We write in all paths (and no reads), so should just be out. void out_test_0(int cond, inout int i) { if (cond == 0) i = 40; else i = 60; } // We write in all paths (and no reads), so should just be out. void out_test_1(int cond, inout int i) { switch (cond) { case 40: i = 40; break; default: i = 70; break; } } // We don't write in all paths, so should be inout. void inout_test_0(int cond, inout int i) { if (cond == 0) i = 40; } void inout_test_1(int cond, inout int i) { switch (cond) { case 40: i = 40; break; } } void main() { int cond = 40; int i = 50; out_test_0(cond, i); out_test_1(cond, i); inout_test_0(cond, i); inout_test_1(cond, i); }