foo: function with parameters a: signed int b: signed int p: pointer to signed int returning signed int with body CompoundStmt Declaration of c: signed int Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Applying untyped: Name: ?[?] ...to: Name: p constant expression 2 signed int Applying untyped: Name: ?+? ...to: Name: a constant expression 0x1000 signed int Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: c Applying untyped: Name: ?+? ...to: Name: b constant expression 0xffff0000 unsigned int If on condition: Cast of: Applying untyped: Name: ?!=? ...to: Applying untyped: Name: ?==? ...to: Applying untyped: Name: ?+? ...to: Name: b constant expression 0xffff0000 unsigned int constant expression 2 signed int Name: 0 to: signed int .... and branches: Expression Statement: Applying untyped: Name: ?++ ...to: Address of: Name: c Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Applying untyped: Name: ?[?] ...to: Name: p constant expression 2 signed int Name: c