nameExpr is g decl is g: function with parameters signed int returning nothing newExpr is Variable Expression: g: function with parameters signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is b decl is b: float newExpr is Variable Expression: b: float decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: float (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: float to: nothing (types: ) Environment: marking ambiguous there are 1 alternatives before elimination nameExpr is g decl is g: function with parameters signed int returning nothing newExpr is Variable Expression: g: function with parameters signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is b decl is b: float newExpr is Variable Expression: b: float decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: float (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: float to: nothing (types: ) Environment: marking ambiguous there are 1 alternatives before elimination nameExpr is g decl is g: function with parameters signed int returning nothing newExpr is Variable Expression: g: function with parameters signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: g: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 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 alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Variable Expression: a: signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is b decl is b: float newExpr is Variable Expression: b: float decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: float (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Comma Expression: Variable Expression: a: signed int Variable Expression: b: signed int (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Comma Expression: Variable Expression: a: signed int Variable Expression: b: float (types: lvalue float ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Comma Expression: Variable Expression: a: signed int Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Comma Expression: Variable Expression: a: signed int Variable Expression: b: float to: nothing (types: ) Environment: marking ambiguous there are 1 alternatives before elimination nameExpr is b decl is b: float newExpr is Variable Expression: b: float decl is b: signed int newExpr is Variable Expression: b: signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: float (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: b: signed int (types: lvalue signed int ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination Error: Can't choose between alternatives for expression Cast of: Name: b to: nothing Alternatives are: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: float to: nothing (types: ) Environment: Error: Can't choose between alternatives for expression Cast of: Name: b to: nothing Alternatives are: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Variable Expression: b: float to: nothing (types: ) Environment: Error: Can't choose between alternatives for expression Cast of: Comma Expression: Name: a Name: b to: nothing Alternatives are: Cost ( 0, 0, 1 ): Cast of: Comma Expression: Variable Expression: a: signed int Variable Expression: b: signed int to: nothing (types: ) Environment: Cost ( 0, 0, 1 ): Cast of: Comma Expression: Variable Expression: a: signed int Variable Expression: b: float to: nothing (types: ) Environment: Error: Ambiguous expression in sizeof operand: Name: b