frameworks/compile/slang/lit-tests/P_ref_count/ref_count.rscript

38 lines
1.0 KiB
Plaintext
Raw Normal View History

2025-08-25 08:17:13 +08:00
// RUN: %Slang %s
// RUN: %rs-filecheck-wrapper %s
#pragma version(1)
#pragma rs java_package_name(ref_count)
struct Wrapper {
rs_element e;
rs_type t;
};
// CHECK: call void @_Z13rsClearObjectP10rs_element(%struct.rs_element{{.*}}* nonnull %.rs.tmp{{[0-9]+}})
// CHECK: call void @_Z11rsSetObjectP10rs_elementS_(%struct.rs_element{{.*}}* nonnull %.rs.retval{{[0-9]+}}, {{.*}})
static rs_element bar() {
rs_element x = {0};
return x;
}
// CHECK: call void @_Z11rsSetObjectP10rs_elementS_(%struct.rs_element{{.*}}* %{{.*}}, {{.*}})
// CHECK: call void @_Z11rsSetObjectP7rs_typeS_(%struct.rs_type{{.*}}* %{{.*}}, {{.*}})
// CHECK: call void @_Z13rsClearObjectP10rs_element(%struct.rs_element{{.*}}* {{.*}})
// CHECK: call void @_Z13rsClearObjectP7rs_type(%struct.rs_type{{.*}}* {{.*}})
static struct Wrapper baz() {
struct Wrapper x = { 0, 0 };
return x;
}
void entrypoint() {
rs_element e = bar();
struct Wrapper w = baz();
if (rsIsObject(e) && rsIsObject(w.e) && rsIsObject(w.t)) {
rsDebug("good objects", 0);
}
}