UsualArithmeticConversions is crashing with an assert

when comparing "float" and "const float".  This "fixes" the
issue, but may not be the right fix.  Steve, please review.

Testcase here: test/Sema/usual-float.c


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43113 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-10-18 03:50:33 +00:00
Родитель fd8b4a4b29
Коммит 27b837c3b8
2 изменённых файлов: 8 добавлений и 2 удалений

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

@ -868,8 +868,8 @@ QualType Sema::UsualArithmeticConversions(Expr *&lhsExpr, Expr *&rhsExpr,
QualType rhs = rhsExpr->getType();
// If both types are identical, no conversion is needed.
if (lhs == rhs)
return lhs;
if (lhs.getTypePtr() == rhs.getTypePtr())
return lhs.getQualifiedType(0);
// 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).

6
test/Sema/usual-float.c Normal file
Просмотреть файл

@ -0,0 +1,6 @@
// RUN: clang %s -fsyntax-only
void foo(int dir, int n, int tindex) {
const float PI = 3.142;
float ang = (float) tindex * (-dir*2.0f*PI/n);
}