From: Steve Naroff Date: Thu, 18 Oct 2007 18:55:53 +0000 (+0000) Subject: Tweak a recent fix to UsualArithmeticConversions (made by Chris - r43113). The benefi... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3187e204729340f5ad8d911c64dde0bfa0fae081;p=clang 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 --- diff --git a/Sema/SemaExpr.cpp b/Sema/SemaExpr.cpp index 12897ea291..28c6856862 100644 --- a/Sema/SemaExpr.cpp +++ b/Sema/SemaExpr.cpp @@ -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).