xref: /aosp_15_r20/external/skia/resources/sksl/glsl/Underscores.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1int _u_n_d_e_r_s_c_o_r_e_s_;
2int a_r_e_;
3int _c_o_o_l;
4
5int __two_underscores_at_the_front;
6int two_underscores__in_the_middle;
7int two_underscores_at_the_end__;
8int __; // two underscores in isolation
9
10int three___underscores;
11
12int contains_mangle_marker_X_;
13
14struct two_underscores__in_a_structname {
15    int two_underscores__in_a_struct_field;
16} two_underscores__in_struct_var;
17
18two_underscores__in_an_interface_block {
19    int two_underscores__in_a_interface_block_field;
20} two_underscores__in_a_interface_block_var;
21
22// Code is not meaningful, but uses mangled identifiers and prevents elimination via optimizer.
23
24noinline two_underscores__in_a_structname two_underscores__in_a_funcname(
25        two_underscores__in_a_structname two_underscores__in_a_parameter) {
26    if (__two_underscores_at_the_front == two_underscores_at_the_end__) {
27        if (two_underscores__in_the_middle == contains_mangle_marker_X_) {
28            ++contains_mangle_marker_X_;
29        }
30    }
31    two_underscores__in_a_parameter.two_underscores__in_a_struct_field = __;
32    return two_underscores__in_a_structname(three___underscores);
33}
34
35void main() {
36    _u_n_d_e_r_s_c_o_r_e_s_ = a_r_e_ = _c_o_o_l;
37    two_underscores__in_a_funcname(two_underscores__in_struct_var);
38}
39