[cfe-commits] r74404 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/Sema/ext_vector_casts.c

Eli Friedman eli.friedman at gmail.com
Sat Jun 27 20:13:42 PDT 2009


On Sat, Jun 27, 2009 at 7:36 PM, Nate Begeman<natebegeman at mac.com> wrote:
> +  // Handle the case of an ext vector and scalar
> +  if (const ExtVectorType *LV = lhsType->getAsExtVectorType()) {
> +    QualType EltTy = LV->getElementType();
> +    if (EltTy->isIntegralType() && rhsType->isIntegralType()) {
> +      if (Context.getIntegerTypeOrder(EltTy, rhsType) >= 0) {
> +        ImpCastExprToType(rex, EltTy);
> +        rex = new (Context) CStyleCastExpr(lhsType, rex, lhsType,
> +                                           rex->getSourceRange().getBegin(),
> +                                           rex->getSourceRange().getEnd());
> +        if (swapped) std::swap(rex, lex);
> +        return lhsType;
> +      }
> +    }

Creating a CStyleCastExpr here leads to a misleading AST; is there
some reason why you can't just use ImpCastExprToType(rex, lhsType)"?

-Eli




More information about the cfe-commits mailing list