nameExpr is v1 decl is v1: pointer to signed int newExpr is Variable Expression: v1: pointer to signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: v1: pointer to signed int (types: lvalue pointer to 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: v1: pointer to signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is *? 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 alternatives before prune: Cost ( 0, 0, 2 ): Cast of: constant expression 4 signed int to: long unsigned int (types: long unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination 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 alternatives before prune: Cost ( 0, 0, 2 ): Cast of: constant expression 4 signed int to: long unsigned int (types: long unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination Error: No reasonable alternatives for expression Name: *?