// correct execution order:
// label_3
// label_2
// label_4
// label_3
// label_1
// label_5
void main() {
    float x = 1;
    float y = 2;

    goto label_3;

    :label_1; print("label_1", "\n"); goto label_5;
    :label_2; print("label_2", "\n"); goto label_4;
    :label_3; print("label_3", "\n");

    // will goto label_2
    goto (x == y) ? label_1 : label_2;

    :label_4; print("label_4", "\n");
    {
        x = 1;
        y = 1;

        // will goto label_1
        // then goes label_5
        goto label_3;
    }

    :label_5; print("label_5", "\n");
}