nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Variable Expression: _src: instance of struct inner newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Variable Expression: _src: instance of struct inner newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct inner (types: lvalue instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner (types: instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Variable Expression: _src: instance of struct outer newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Variable Expression: _src: instance of struct outer newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: lvalue instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to instance of struct inner ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue instance of struct inner ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to instance of struct inner working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to instance of struct inner formal type is instance of struct inner actual type is lvalue instance of struct inner need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer --- results are pointer to instance of struct inner converting pointer to instance of struct inner to pointer to instance of struct inner cost is( 0, 0, 0 ) actual expression: Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer --- results are lvalue instance of struct inner converting lvalue instance of struct inner to instance of struct inner cost is( 0, 0, 0 ) Case +++++++++++++ formals are: _dst: pointer to instance of struct inner _src: instance of struct inner actuals are: Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer (types: instance of struct inner ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Variable Expression: _src: instance of struct outer newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: lvalue double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer (types: pointer to double ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer (types: lvalue double ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to double working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to double alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct outer (types: lvalue instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer (types: instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is y decl is y: unsigned int newExpr is Variable Expression: y: unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: nameExpr is x decl is x: short signed int newExpr is Variable Expression: x: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: y: unsigned int Variable Expression: x: short signed int (types: lvalue unsigned int lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: y: unsigned int Variable Expression: x: short signed int (types: pointer to unsigned int pointer to short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: y: unsigned int Variable Expression: x: short signed int (types: pointer to unsigned int pointer to short signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is x decl is x: short signed int newExpr is Variable Expression: x: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: nameExpr is y decl is y: unsigned int newExpr is Variable Expression: y: unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int (types: lvalue short signed int lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int (types: pointer to short signed int pointer to unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int (types: pointer to short signed int pointer to unsigned int ) Environment: nameExpr is w decl is w: signed int newExpr is Variable Expression: w: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: w: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: w: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 23 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 23 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: w: signed int constant expression 23 signed int (types: lvalue signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: w: signed int constant expression 23 signed int (types: lvalue signed int signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: x: short signed int (types: pointer to short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: x: short signed int (types: pointer to short signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: w: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: w: signed int (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to short signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to short signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is x decl is x: short signed int newExpr is Variable Expression: x: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: nameExpr is y decl is y: unsigned int newExpr is Variable Expression: y: unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: nameExpr is z decl is z: tuple of types signed int signed int newExpr is Variable Expression: z: tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: lvalue short signed int lvalue unsigned int lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: pointer to short signed int pointer to unsigned int pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: pointer to short signed int pointer to unsigned int pointer to signed int pointer to signed int ) Environment: nameExpr is p decl is p: short signed int newExpr is Variable Expression: p: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: p: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: p: short signed int (types: lvalue short signed int ) Environment: nameExpr is f decl is f: function with parameters signed int signed int returning signed int newExpr is Variable Expression: f: function with parameters signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 17 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 17 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: formal type is signed int actual type is signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is x decl is x: short signed int newExpr is Variable Expression: x: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: nameExpr is y decl is y: unsigned int newExpr is Variable Expression: y: unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: nameExpr is z decl is z: tuple of types signed int signed int newExpr is Variable Expression: z: tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: lvalue short signed int lvalue unsigned int lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: pointer to short signed int pointer to unsigned int pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: pointer to short signed int pointer to unsigned int pointer to signed int pointer to signed int ) Environment: nameExpr is p decl is p: short signed int newExpr is Variable Expression: p: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: p: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: p: short signed int (types: lvalue short signed int ) Environment: nameExpr is f decl is f: function with parameters signed int signed int returning signed int newExpr is Variable Expression: f: function with parameters signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 17 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 17 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: formal type is signed int actual type is signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is r decl is r: tuple of types signed int char long signed int signed int newExpr is Variable Expression: r: tuple of types signed int char long signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: r: tuple of types signed int char long signed int signed int (types: lvalue signed int lvalue char lvalue long signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: r: tuple of types signed int char long signed int signed int (types: pointer to signed int pointer to char pointer to long signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: r: tuple of types signed int char long signed int signed int (types: pointer to signed int pointer to char pointer to long signed int pointer to signed int ) Environment: nameExpr is x decl is x: short signed int newExpr is Variable Expression: x: short signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: x: short signed int (types: lvalue short signed int ) Environment: nameExpr is y decl is y: unsigned int newExpr is Variable Expression: y: unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int (types: lvalue unsigned int ) Environment: nameExpr is z decl is z: tuple of types signed int signed int newExpr is Variable Expression: z: tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: lvalue short signed int lvalue unsigned int lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: x: short signed int Variable Expression: y: unsigned int Variable Expression: z: tuple of types signed int signed int (types: lvalue short signed int lvalue unsigned int lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is 1 nameExpr is f decl is f: function with parameters signed int signed int returning signed int newExpr is Variable Expression: f: function with parameters signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: formal type is signed int actual type is signed int formal type is signed int actual type is signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Tuple: constant expression 3 signed int constant expression 5 signed int --- results are signed int signed int converting signed int to signed int cost is( 0, 0, 0 ) converting signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int signed int actuals are: Tuple: constant expression 3 signed int constant expression 5 signed int bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: f: function with parameters signed int signed int returning signed int to arguments Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: f: function with parameters signed int signed int returning signed int to arguments Tuple: constant expression 3 signed int constant expression 5 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is g decl is g: function with parameters signed int signed int signed int returning signed int newExpr is Variable Expression: g: function with parameters signed int signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int signed int signed int returning signed int (types: pointer to function with parameters signed int signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int signed int signed int returning signed int (types: pointer to function with parameters signed int signed int signed int returning signed int ) Environment: formal type is signed int actual type is signed int formal type is signed int actual type is signed int formal type is signed int actual type is signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Tuple: constant expression 3 signed int constant expression 5 signed int --- results are signed int signed int converting signed int to signed int cost is( 0, 0, 0 ) converting signed int to signed int cost is( 0, 0, 0 ) actual expression: constant expression 3 signed int --- results are signed int converting signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int signed int signed int actuals are: Tuple: constant expression 3 signed int constant expression 5 signed int constant expression 3 signed int bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: g: function with parameters signed int signed int signed int returning signed int to arguments Tuple: constant expression 3 signed int constant expression 5 signed int constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: g: function with parameters signed int signed int signed int returning signed int to arguments Tuple: constant expression 3 signed int constant expression 5 signed int constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is f decl is f: function with parameters signed int signed int returning signed int newExpr is Variable Expression: f: function with parameters signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: f: function with parameters signed int signed int returning signed int (types: pointer to function with parameters signed int signed int returning signed int ) Environment: formal type is signed int actual type is lvalue signed int formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Variable Expression: t1: const volatile tuple of types signed int signed int --- results are lvalue signed int lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int signed int actuals are: Variable Expression: t1: const volatile tuple of types signed int signed int bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: f: function with parameters signed int signed int returning signed int to arguments Variable Expression: t1: const volatile tuple of types signed int signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: f: function with parameters signed int signed int returning signed int to arguments Variable Expression: t1: const volatile tuple of types signed int signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is g decl is g: function with parameters signed int signed int signed int returning signed int newExpr is Variable Expression: g: function with parameters signed int signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int signed int signed int returning signed int (types: pointer to function with parameters signed int signed int signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int signed int signed int returning signed int (types: pointer to function with parameters signed int signed int signed int returning signed int ) Environment: formal type is signed int actual type is lvalue signed int formal type is signed int actual type is lvalue signed int formal type is signed int actual type is signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Variable Expression: t1: const volatile tuple of types signed int signed int --- results are lvalue signed int lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) converting lvalue signed int to signed int cost is( 0, 0, 0 ) actual expression: constant expression 3 signed int --- results are signed int converting signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int signed int signed int actuals are: Variable Expression: t1: const volatile tuple of types signed int signed int constant expression 3 signed int bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: g: function with parameters signed int signed int signed int returning signed int to arguments Variable Expression: t1: const volatile tuple of types signed int signed int constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: g: function with parameters signed int signed int signed int returning signed int to arguments Variable Expression: t1: const volatile tuple of types signed int signed int constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Tuple: (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Tuple: to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 2 ): Cast of: Tuple: constant expression 3 signed int constant expression 5 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: a: signed int (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: a: signed int (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 4.6 double (types: double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 4.6 double (types: double ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 4.6 double (types: double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 4.6 double (types: double ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: nameExpr is d decl is d: signed int newExpr is Variable Expression: d: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 5 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 5 signed int (types: signed int signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: c: signed int (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: c: signed int (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int Tuple: Variable Expression: c: signed int (types: lvalue signed int lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int Tuple: Variable Expression: c: signed int (types: pointer to signed int pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int Tuple: Variable Expression: c: signed int (types: pointer to signed int pointer to signed int pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 2 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 2 signed int (types: signed int ) Environment: nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 2 signed int Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: signed int lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 2 signed int Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: signed int lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?!=? nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t2 decl is t2: static const tuple of types signed int const signed int newExpr is Variable Expression: t2: static const tuple of types signed int const signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types signed int const signed int (types: lvalue signed int const lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t2: static const tuple of types signed int const signed int (types: pointer to signed int pointer to const signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t2: static const tuple of types signed int const signed int (types: pointer to signed int pointer to const signed int ) Environment: nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: nameExpr is d decl is d: signed int newExpr is Variable Expression: d: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?+=? nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: nameExpr is d decl is d: signed int newExpr is Variable Expression: d: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: nameExpr is d decl is d: signed int newExpr is Variable Expression: d: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t2 decl is t2: static const tuple of types signed int const signed int newExpr is Variable Expression: t2: static const tuple of types signed int const signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types signed int const signed int (types: lvalue signed int const lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t2: static const tuple of types signed int const signed int (types: pointer to signed int pointer to const signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t2: static const tuple of types signed int const signed int (types: pointer to signed int pointer to const signed int ) Environment: nameExpr is c decl is c: signed int newExpr is Variable Expression: c: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: c: signed int (types: lvalue signed int ) Environment: nameExpr is d decl is d: signed int newExpr is Variable Expression: d: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: d: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: Variable Expression: c: signed int Variable Expression: d: signed int (types: lvalue signed int lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to signed int nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is t1 decl is t1: const volatile tuple of types signed int signed int newExpr is Variable Expression: t1: const volatile tuple of types signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types signed int signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: t1: const volatile tuple of types signed int signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 4 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 4 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 3 signed int constant expression 4 signed int (types: signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is s decl is s: instance of struct outer newExpr is Variable Expression: s: instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer (types: lvalue instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: s: instance of struct outer (types: pointer to instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: s: instance of struct outer (types: pointer to instance of struct outer ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 11 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 11 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 12 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 12 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 13 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 13 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3.14159 double (types: double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3.14159 double (types: double ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: constant expression 11 signed int constant expression 12 signed int constant expression 13 signed int constant expression 3.14159 double (types: signed int signed int signed int double ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Tuple: constant expression 11 signed int constant expression 12 signed int constant expression 13 signed int constant expression 3.14159 double (types: signed int signed int signed int double ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to instance of struct outer formal type is instance of struct outer actual type is signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to instance of struct outer nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is s decl is s: instance of struct outer newExpr is Variable Expression: s: instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer (types: lvalue instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: s: instance of struct outer (types: pointer to instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: s: instance of struct outer (types: pointer to instance of struct outer ) Environment: nameExpr is h decl is h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int newExpr is Variable Expression: h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int (types: pointer to function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: nameExpr is 0 nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is a decl is a: signed int newExpr is Variable Expression: a: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: a: signed int (types: lvalue signed int ) Environment: nameExpr is b decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Tuple: Variable Expression: a: signed int Variable Expression: b: signed int (types: pointer to signed int pointer to signed int ) Environment: nameExpr is h decl is h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int newExpr is Variable Expression: h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: h: static function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int (types: pointer to function with parameters a: signed int b: signed int c: pointer to signed int d: pointer to char returning signed int pointer to signed int pointer to signed int signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: nameExpr is 0 nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is sp decl is sp: pointer to instance of struct outer newExpr is Variable Expression: sp: pointer to instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer (types: lvalue pointer to instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: sp: pointer to instance of struct outer (types: pointer to pointer to instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: sp: pointer to instance of struct outer (types: pointer to pointer to instance of struct outer ) Environment: nameExpr is sp decl is sp: pointer to instance of struct outer newExpr is Variable Expression: sp: pointer to instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer (types: lvalue pointer to instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer (types: lvalue pointer to instance of struct outer ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: formal type is pointer to instance of struct outer actual type is pointer to pointer to instance of struct outer working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: formal type is pointer to instance of struct inner actual type is pointer to pointer to instance of struct outer nameExpr is printf decl is printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int newExpr is Variable Expression: printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int (types: pointer to function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types: pointer to char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types: pointer to char ) Environment: nameExpr is s decl is s: instance of struct outer newExpr is Variable Expression: s: instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer (types: lvalue instance of struct outer ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer (types: lvalue instance of struct outer ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int (types: pointer to function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int ) Environment: formal type is pointer to char actual type is pointer to char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int --- results are pointer to char converting pointer to char to pointer to char cost is( 0, 0, 0 ) actual expression: Variable Expression: s: instance of struct outer --- results are lvalue instance of struct outer Case +++++++++++++ formals are: fmt: pointer to char actuals are: constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int Variable Expression: s: instance of struct outer bindings are: cost of conversion is:( 1, 0, 0 ) alternatives before prune: Cost ( 1, 0, 0 ): Application of Variable Expression: printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int to arguments constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int Variable Expression: s: instance of struct outer (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: printf: function with parameters fmt: pointer to char and a variable number of other arguments returning rc: signed int to arguments constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int Variable Expression: s: instance of struct outer to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Return Statement, returning: Cast of: Variable Expression: _src: instance of struct inner to: instance of struct inner with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Expression Statement: Application of Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner to arguments Address of: Member Expression, with field: i: instance of struct inner from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: i: instance of struct inner from aggregate: Variable Expression: _src: instance of struct outer with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Return Statement, returning: Cast of: Variable Expression: _src: instance of struct outer to: instance of struct outer with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner (types: pointer to function with parameters _dst: pointer to instance of struct inner _src: instance of struct inner returning instance of struct inner ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer (types: pointer to function with parameters _dst: pointer to instance of struct outer _src: instance of struct outer returning instance of struct outer ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination nameExpr is rc decl is rc: signed int newExpr is Variable Expression: rc: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: rc: signed int (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: rc: signed int (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: rc: signed int (types: pointer to signed int ) Environment: nameExpr is 0 Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f2: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f2: signed int from aggregate: Variable Expression: _src: instance of struct inner Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f3: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct inner Member Expression, with field: f3: signed int from aggregate: Variable Expression: _src: instance of struct inner Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f1: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f1: signed int from aggregate: Variable Expression: _src: instance of struct outer Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: f4: double from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct outer Member Expression, with field: f4: double from aggregate: Variable Expression: _src: instance of struct outer Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Variable Expression: x: short signed int Variable Expression: w: signed int Error: No reasonable alternatives for expression Applying untyped: Name: f ...to: constant expression 17 signed int Error: No reasonable alternatives for expression Applying untyped: Name: f ...to: constant expression 17 signed int Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: r Tuple: Name: x Name: y Name: z Error: No reasonable alternatives for expression Name: 1 Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Variable Expression: a: signed int constant expression 3 signed int Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Tuple: Name: a Name: b Tuple: constant expression 4.6 double Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Variable Expression: c: signed int constant expression 3 signed int Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Tuple: Name: a Name: b Tuple: Name: c Tuple: constant expression 2 signed int Tuple: Name: a Name: b Error: No reasonable alternatives for expression Name: ?!=? Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: t1 Tuple: Name: a Name: b Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: t2 Tuple: Name: a Name: b Error: No reasonable alternatives for expression Name: ?+=? Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Tuple: Name: c Name: d Name: t1 Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: t1 Tuple: Name: c Name: d Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: t2 Tuple: Name: c Name: d Error: No reasonable alternatives for expression Address of: Tuple: constant expression 3 signed int constant expression 4 signed int Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: s Tuple: constant expression 11 signed int constant expression 12 signed int constant expression 13 signed int constant expression 3.14159 double Error: No reasonable alternatives for expression Name: 0 Error: No reasonable alternatives for expression Name: 0 Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Name: sp Name: sp Error: No reasonable alternatives for expression Name: 0