]> granicus.if.org Git - clang/commitdiff
Fix a silly mistake in ComplexExprEvaluator::ZeroInitialization. <rdar://problem...
authorEli Friedman <eli.friedman@gmail.com>
Fri, 13 Jan 2012 23:34:56 +0000 (23:34 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 13 Jan 2012 23:34:56 +0000 (23:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148157 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ExprConstant.cpp
test/SemaCXX/constant-expression-cxx11.cpp

index 0cae13850d601529866b0f006c7cae5229c587dc..912b111d617b351287c0e69ace7b0b7fa7e45676 100644 (file)
@@ -4914,7 +4914,7 @@ static bool EvaluateComplex(const Expr *E, ComplexValue &Result,
 }
 
 bool ComplexExprEvaluator::ZeroInitialization(const Expr *E) {
-  QualType ElemTy = cast<ComplexType>(E->getType())->getElementType();
+  QualType ElemTy = E->getType()->getAs<ComplexType>()->getElementType();
   if (ElemTy->isRealFloatingType()) {
     Result.makeComplexFloat();
     APFloat Zero = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(ElemTy));
index 71ce75887ba7390b2bd5737cd90f50c1edb1e5db..d80339fe5f13c54550c2cdfbe2a5ed38689ec22b 100644 (file)
@@ -998,4 +998,6 @@ namespace ComplexConstexpr {
   constexpr _Complex int test4 = {4};
   constexpr _Complex int test5 = 4;
   constexpr _Complex int test6 = {5,6};
+  typedef _Complex float fcomplex;
+  constexpr fcomplex test7 = fcomplex();
 }