process main {
    var("bad_x") x;
    var("good_x") y;
    call("helper_func", {}) helper;
    call_with_caller_target("func1", {}, "helper") c;
    val_equal(c.x, "good_x") a;
    assert(a);
    
    exit("0");
}

template helper_func {
    var(_caller.y) x;
}

template func1 {
    var(_caller.x) x;
}