| typedef unsigned char __uint8_t; |
| typedef __uint8_t uint8_t; |
| typedef struct plane_t { |
| uint8_t *p_pixels; |
| int i_lines; |
| int i_pitch; |
| } plane_t; |
| |
| typedef struct { |
| plane_t p[5]; |
| } picture_t; |
| |
| #define N 4 |
| |
| void __attribute__((noipa)) |
| picture_Clone(picture_t *picture, picture_t *res) |
| { |
| for (int i = 0; i < N; i++) { |
| res->p[i].p_pixels = picture->p[i].p_pixels; |
| res->p[i].i_lines = picture->p[i].i_lines; |
| res->p[i].i_pitch = picture->p[i].i_pitch; |
| } |
| } |
| |
| int |
| main() |
| { |
| picture_t aaa, bbb; |
| uint8_t pixels[10] = {1, 1, 1, 1, 1, 1, 1, 1}; |
| |
| for (unsigned i = 0; i < N; i++) |
| aaa.p[i].p_pixels = pixels; |
| |
| picture_Clone (&aaa, &bbb); |
| |
| uint8_t c = 0; |
| for (unsigned i = 0; i < N; i++) |
| c += bbb.p[i].p_pixels[0]; |
| |
| if (c != N) |
| __builtin_abort (); |
| return 0; |
| } |