Tweak a recent fix to UsualArithmeticConversions (made by Chris - r43113). The benefit of this tweak is it guarantees the entire routine operates on unqualified types (which I believe is a bit clearer).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43142 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Steve Naroff 2007-10-18 18:55:53 +00:00
Родитель 6acaabc91e
Коммит 3187e20472
1 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -867,12 +867,14 @@ QualType Sema::UsualArithmeticConversions(Expr *&lhsExpr, Expr *&rhsExpr,
UsualUnaryConversions(lhsExpr);
UsualUnaryConversions(rhsExpr);
}
QualType lhs = lhsExpr->getType();
QualType rhs = rhsExpr->getType();
// For conversion purposes, we ignore any qualifiers.
// For example, "const float" and "float" are equivalent.
QualType lhs = lhsExpr->getType().getUnqualifiedType();
QualType rhs = rhsExpr->getType().getUnqualifiedType();
// If both types are identical, no conversion is needed.
if (lhs.getTypePtr() == rhs.getTypePtr())
return lhs.getQualifiedType(0);
if (lhs == rhs)
return lhs;
// If either side is a non-arithmetic type (e.g. a pointer), we are done.
// The caller can deal with this (e.g. pointer + int).