mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
Add missing casts to AST.
llvm-svn: 144455
This commit is contained in:
@@ -823,14 +823,21 @@ static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS,
|
||||
|
||||
if (LHSComplexInt) {
|
||||
// int -> _Complex int
|
||||
// FIXME: This needs to take integer ranks into account
|
||||
RHS = S.ImpCastExprToType(RHS.take(), LHSComplexInt->getElementType(),
|
||||
CK_IntegralCast);
|
||||
RHS = S.ImpCastExprToType(RHS.take(), LHSType, CK_IntegralRealToComplex);
|
||||
return LHSType;
|
||||
}
|
||||
|
||||
assert(RHSComplexInt);
|
||||
// int -> _Complex int
|
||||
if (!IsCompAssign)
|
||||
// FIXME: This needs to take integer ranks into account
|
||||
if (!IsCompAssign) {
|
||||
LHS = S.ImpCastExprToType(LHS.take(), RHSComplexInt->getElementType(),
|
||||
CK_IntegralCast);
|
||||
LHS = S.ImpCastExprToType(LHS.take(), RHSType, CK_IntegralRealToComplex);
|
||||
}
|
||||
return RHSType;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,9 @@ EVAL_EXPR(38, __builtin_expect(1,1) == 1 ? 1 : -1)
|
||||
EVAL_EXPR(39, __real__(1.f) == 1 ? 1 : -1)
|
||||
EVAL_EXPR(40, __imag__(1.f) == 0 ? 1 : -1)
|
||||
|
||||
// From gcc testsuite
|
||||
EVAL_EXPR(41, (int)(1+(_Complex unsigned)2))
|
||||
|
||||
// rdar://8875946
|
||||
void rdar8875946() {
|
||||
double _Complex P;
|
||||
|
||||
Reference in New Issue
Block a user