added type-promotion.c code