summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-01-18 18:49:33 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-01-18 18:49:33 +0000
commite84389bf68105d8b03447ad94dad8bee2b577ec8 (patch)
treee33b14e5f07b61df0686d2acf60bac50f0c985ca /clang/lib
parentd763b3e014a1c0deabedbd0aedfeee8b7714ab44 (diff)
downloadbcm5719-llvm-e84389bf68105d8b03447ad94dad8bee2b577ec8.tar.gz
bcm5719-llvm-e84389bf68105d8b03447ad94dad8bee2b577ec8.zip
Properly do a float -> _Complex double conversion, fixes rdar://8875946.
llvm-svn: 123759
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 45e0c3377b8..e2e802c7901 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -528,7 +528,8 @@ QualType Sema::UsualArithmeticConversions(Expr *&lhsExpr, Expr *&rhsExpr,
if (order < 0) { // RHS is wider
// float -> _Complex double
if (!isCompAssign) {
- ImpCastExprToType(lhsExpr, rhs, CK_FloatingCast);
+ QualType fp = cast<ComplexType>(rhs)->getElementType();
+ ImpCastExprToType(lhsExpr, fp, CK_FloatingCast);
ImpCastExprToType(lhsExpr, rhs, CK_FloatingRealToComplex);
}
return rhs;
OpenPOWER on IntegriCloud