| #include <metal_stdlib> | |
| using namespace metal; | |
| struct S1 { | |
| int i; | |
| }; | |
| struct S2 { | |
| S1 s1; | |
| }; | |
| struct S3 { | |
| S2 s2; | |
| }; | |
| struct tint_module_vars_struct { | |
| device int* out; | |
| }; | |
| int f(S3 s3) { | |
| return s3.s2.s1.i; | |
| } | |
| kernel void tint_symbol(device int* out [[buffer(0)]]) { | |
| tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out}; | |
| (*tint_module_vars.out) = f(S3{.s2=S2{.s1=S1{.i=42}}}); | |
| } |