?=?: function with parameters pointer to signed int signed int returning signed int ?=?: function with parameters pointer to float float returning float ?=?: function with parameters pointer to pointer to signed int pointer to signed int returning pointer to signed int ?=?: function with parameters pointer to pointer to float pointer to float returning pointer to float ?=?: function with parameters pointer to char char returning char ?=?: function with parameters pointer to pointer to function returning nothing pointer to function returning nothing returning pointer to function returning nothing g1: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters instance of type T (not function type) returning instance of type T (not function type) Declaration of f: function with parameters signed int returning nothing Declaration of h: function with parameters p: pointer to function returning nothing returning nothing Declaration of x: signed int Declaration of y: pointer to function returning nothing Declaration of z: char Declaration of w: float Expression Statement: Applying untyped: Name: f ...to: Name: x Expression Statement: Applying untyped: Name: f ...to: Name: y Expression Statement: Applying untyped: Name: f ...to: Name: z Expression Statement: Applying untyped: Name: f ...to: Name: w Expression Statement: Applying untyped: Name: h ...to: Applying untyped: Name: f ...to: Name: y g2: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters instance of type T (not function type) instance of type T (not function type) returning nothing Declaration of f: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) U: type with assertions ?=?: pointer to function with parameters pointer to instance of type U (not function type) instance of type U (not function type) returning instance of type U (not function type) function with parameters instance of type T (not function type) instance of type U (not function type) returning nothing Declaration of x: signed int Declaration of y: float Declaration of z: pointer to signed int Declaration of w: pointer to float Expression Statement: Applying untyped: Name: f ...to: Name: x Name: y Expression Statement: Applying untyped: Name: f ...to: Name: z Name: w Expression Statement: Applying untyped: Name: f ...to: Name: x Name: z swap: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters left: instance of type T (not function type) right: instance of type T (not function type) returning nothing with body CompoundStmt Declaration of temp: instance of type T (not function type) with initializer Simple Initializer: Name: left Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: temp Name: left Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: left Name: right Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: right Name: temp context sumable with parameters T: type with members 0: const instance of type T (not function type) ?+?: function with parameters instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) ?++: function with parameters instance of type T (not function type) returning instance of type T (not function type) ?+=?: function with parameters instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) T1: type with assertions 0: const instance of type T1 (not function type) ?+?: function with parameters instance of type T1 (not function type) instance of type T1 (not function type) returning instance of type T1 (not function type) ?++: function with parameters instance of type T1 (not function type) returning instance of type T1 (not function type) ?+=?: function with parameters instance of type T1 (not function type) instance of type T1 (not function type) returning instance of type T1 (not function type) ?=?: automatically generated function with parameters _dst: pointer to instance of type T1 (not function type) _src: instance of type T1 (not function type) returning instance of type T1 (not function type) T2: type with parameters P1: type P2: type ?=?: automatically generated function with parameters _dst: pointer to instance of type T2 (not function type) _src: instance of type T2 (not function type) returning instance of type T2 (not function type) T3: type with assertions instance of context sumable with parameters instance of type T3 (not function type) ?=?: automatically generated function with parameters _dst: pointer to instance of type T3 (not function type) _src: instance of type T3 (not function type) returning instance of type T3 (not function type) struct __anonymous0 with members i: instance of type P1 (not function type) j: instance of type P2 (not function type) ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: i: instance of type P1 (not function type) from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 Member Expression, with field: i: instance of type P1 (not function type) from aggregate: Variable Expression: _src: instance of struct __anonymous0 Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: j: instance of type P2 (not function type) from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 Member Expression, with field: j: instance of type P2 (not function type) from aggregate: Variable Expression: _src: instance of struct __anonymous0 Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 T2: type for instance of struct __anonymous0 with parameters P1: type P2: type with assertions instance of context sumable with parameters instance of type T2 (not function type) with parameters instance of type P1 (not function type) instance of type P2 (not function type) ?=?: automatically generated function with parameters _dst: pointer to instance of type T2 (not function type) _src: instance of type T2 (not function type) returning instance of type T2 (not function type) with body CompoundStmt Return Statement, returning: Applying untyped: Name: ?=? ...to: Cast of: Variable Expression: _dst: pointer to instance of type T2 (not function type) to: pointer to instance of struct __anonymous0 Cast of: Variable Expression: _src: instance of type T2 (not function type) to: instance of struct __anonymous0 w1: instance of type T2 (not function type) with parameters signed int signed int g2: instance of type T2 (not function type) with parameters signed int signed int w3: type for instance of type T2 (not function type) with parameters signed int signed int ?=?: automatically generated function with parameters _dst: pointer to instance of type w3 (not function type) _src: instance of type w3 (not function type) returning instance of type w3 (not function type) with body CompoundStmt Return Statement, returning: Applying untyped: Name: ?=? ...to: Cast of: Variable Expression: _dst: pointer to instance of type w3 (not function type) to: pointer to instance of type T2 (not function type) with parameters signed int signed int Cast of: Variable Expression: _src: instance of type w3 (not function type) to: instance of type T2 (not function type) with parameters signed int signed int g3: instance of type w3 (not function type) sum: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) 0: const instance of type T (not function type) ?+?: pointer to function with parameters instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) ?++: pointer to function with parameters instance of type T (not function type) returning instance of type T (not function type) ?+=?: pointer to function with parameters instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters n: signed int a: pointer to instance of type T (not function type) returning instance of type T (not function type) with body CompoundStmt Declaration of total: instance of type T (not function type) with initializer Simple Initializer: Name: 0 Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: total Name: 0 Declaration of i: signed int Labels: {} For Statement initialization: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Name: i Name: 0 condition: Cast of: Applying untyped: Name: ?!=? ...to: Applying untyped: Name: ?