38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
|
// 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);
|
||
|
}
|
||
|
}
|