1 /* 2 * Copyright (c) 2021, Alliance for Open Media. All rights reserved. 3 * 4 * This source code is subject to the terms of the BSD 2 Clause License and 5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 * was not distributed with this source code in the LICENSE file, you can 7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8 * Media Patent License 1.0 was not distributed with this source code in the 9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10 */ 11 12 typedef struct S { 13 int x; 14 int y; 15 int z; 16 } S; 17 18 typedef struct T { 19 S s; 20 } T; 21 d(S * s)22int d(S *s) { 23 ++s->x; 24 s->x--; 25 s->y = s->y + 1; 26 int *c = &s->x; 27 S ss; 28 ss.x = 1; 29 ss.x += 2; 30 ss.z *= 2; 31 return 0; 32 } b(S * s)33int b(S *s) { 34 d(s); 35 return 0; 36 } c(int x)37int c(int x) { 38 if (x) { 39 c(x - 1); 40 } else { 41 S s; 42 d(&s); 43 } 44 return 0; 45 } a(S * s)46int a(S *s) { 47 b(s); 48 c(1); 49 return 0; 50 } e(void)51int e(void) { 52 c(0); 53 return 0; 54 } main(void)55int main(void) { 56 int p = 3; 57 S s; 58 s.x = p + 1; 59 s.y = 2; 60 s.z = 3; 61 a(&s); 62 T t; 63 t.s.x = 3; 64 } 65