[cfe-commits] r74404 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/Sema/ext_vector_casts.c
Nate Begeman
natebegeman at mac.com
Sat Jun 27 21:01:25 PDT 2009
On Jun 27, 2009, at 10:13 PM, Eli Friedman wrote:
> 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)"?
This avoided significant modifications to CodeGen, and accomplished
the desired effect.
Nate
More information about the cfe-commits
mailing list