I don't see anything here that prevents vectors from being coerced to pointers to their first element. Isn't there some change needed in evaluate_subexp_with_coercion?