#include using namespace metal; struct tint_array_wrapper { int arr[4]; }; struct S { tint_array_wrapper arr; }; struct tint_array_wrapper_1 { tint_array_wrapper arr[2]; }; void foo() { tint_array_wrapper const src = {.arr={}}; tint_array_wrapper dst = {}; S dst_struct = {}; tint_array_wrapper_1 dst_array = {}; thread tint_array_wrapper* const dst_ptr = &(dst); thread S* const dst_struct_ptr = &(dst_struct); thread tint_array_wrapper_1* const dst_array_ptr = &(dst_array); dst_struct.arr = src; dst_array.arr[1] = src; *(dst_ptr) = src; (*(dst_struct_ptr)).arr = src; (*(dst_array_ptr)).arr[0] = src; }