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