1// RUN: %Slang %s 2// RUN: %rs-filecheck-wrapper %s 3 4#pragma version(1) 5#pragma rs java_package_name(ref_count) 6 7struct Wrapper { 8 rs_element e; 9 rs_type t; 10}; 11 12 13// CHECK: call void @_Z13rsClearObjectP10rs_element(%struct.rs_element{{.*}}* nonnull %.rs.tmp{{[0-9]+}}) 14// CHECK: call void @_Z11rsSetObjectP10rs_elementS_(%struct.rs_element{{.*}}* nonnull %.rs.retval{{[0-9]+}}, {{.*}}) 15 16static rs_element bar() { 17 rs_element x = {0}; 18 return x; 19} 20 21// CHECK: call void @_Z11rsSetObjectP10rs_elementS_(%struct.rs_element{{.*}}* %{{.*}}, {{.*}}) 22// CHECK: call void @_Z11rsSetObjectP7rs_typeS_(%struct.rs_type{{.*}}* %{{.*}}, {{.*}}) 23// CHECK: call void @_Z13rsClearObjectP10rs_element(%struct.rs_element{{.*}}* {{.*}}) 24// CHECK: call void @_Z13rsClearObjectP7rs_type(%struct.rs_type{{.*}}* {{.*}}) 25 26static struct Wrapper baz() { 27 struct Wrapper x = { 0, 0 }; 28 return x; 29} 30 31void entrypoint() { 32 rs_element e = bar(); 33 struct Wrapper w = baz(); 34 if (rsIsObject(e) && rsIsObject(w.e) && rsIsObject(w.t)) { 35 rsDebug("good objects", 0); 36 } 37} 38