This resuled in the following crash below. Also modified the usual-float.c test case to capture this case. [steve-naroffs-imac:clang/test/Sema] snaroff% ../../../../Debug/bin/clang usual-float.c Assertion failed: (0 && "Sema::UsualArithmeticConversions(): illegal float comparison"), function UsualArithmeticConversions, file SemaExpr.cpp, line 960. 0 clang 0x001ef9b9 _ZN40_GLOBAL__N_Signals.cpp_00000000_4E6DAF8315PrintStackTraceEv + 45 1 clang 0x001efd5f _ZN40_GLOBAL__N_Signals.cpp_00000000_4E6DAF8313SignalHandlerEi + 323 2 libSystem.B.dylib 0x90c6297b _sigtramp + 43 3 ??? 0xffffffff 0x0 + 4294967295 4 libSystem.B.dylib 0x90cdb782 raise + 26 5 libSystem.B.dylib 0x90cead3f abort + 73 6 libSystem.B.dylib 0x90cdc923 __assert_rtn + 101 7 clang 0x00077316 _ZN5clang4Sema26UsualArithmeticConversionsERPNS_4ExprES3_b + 1004 8 clang 0x000803cf _ZN5clang4Sema27CheckMultiplyDivideOperandsERPNS_4ExprES3_NS_14SourceLocationEb + 181 9 clang 0x0007a8e8 _ZN5clang4Sema10ActOnBinOpENS_14SourceLocationENS_3tok9TokenKindEPvS4_ + 472 10 clang 0x000cf058 _ZN5clang6Parser26ParseRHSOfBinaryExpressionENS_6Action12ActionResultILj0EEEj + 1286 11 clang 0x000cf2de _ZN5clang6Parser25ParseAssignmentExpressionEv + 86 llvm-svn: 43985
13 lines
252 B
C
13 lines
252 B
C
// RUN: clang %s -fsyntax-only
|
|
|
|
typedef float CGFloat;
|
|
|
|
extern void func(CGFloat);
|
|
void foo(int dir, int n, int tindex) {
|
|
const float PI = 3.142;
|
|
CGFloat cgf = 3.4;
|
|
|
|
float ang = (float) tindex * (-dir*2.0f*PI/n);
|
|
func((CGFloat)cgf/65535.0f);
|
|
}
|