/* * Copyright (c) 2021, Alliance for Open Media. All rights reserved. * * This source code is subject to the terms of the BSD 2 Clause License and * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License * was not distributed with this source code in the LICENSE file, you can * obtain it at www.aomedia.org/license/software. If the Alliance for Open * Media Patent License 1.0 was not distributed with this source code in the * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ typedef struct S { int x; int y; int z; } S; typedef struct T { S s; } T; int d(S *s) { ++s->x; s->x--; s->y = s->y + 1; int *c = &s->x; S ss; ss.x = 1; ss.x += 2; ss.z *= 2; return 0; } int b(S *s) { d(s); return 0; } int c(int x) { if (x) { c(x - 1); } else { S s; d(&s); } return 0; } int a(S *s) { b(s); c(1); return 0; } int e(void) { c(0); return 0; } int main(void) { int p = 3; S s; s.x = p + 1; s.y = 2; s.z = 3; a(&s); T t; t.s.x = 3; }