fix PR6766: codegen of var initialized with wide char

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101568 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp
index 82156f7..6612070 100644
--- a/lib/CodeGen/CGExprConstant.cpp
+++ b/lib/CodeGen/CGExprConstant.cpp
@@ -615,17 +615,16 @@
   }
 
   llvm::Constant *EmitArrayInitialization(InitListExpr *ILE) {
-    std::vector<llvm::Constant*> Elts;
-    const llvm::ArrayType *AType =
-        cast<llvm::ArrayType>(ConvertType(ILE->getType()));
     unsigned NumInitElements = ILE->getNumInits();
-    // FIXME: Check for wide strings
     // FIXME: Check for NumInitElements exactly equal to 1??
     if (NumInitElements > 0 &&
         (isa<StringLiteral>(ILE->getInit(0)) ||
-         isa<ObjCEncodeExpr>(ILE->getInit(0))) &&
-        ILE->getType()->getArrayElementTypeNoTypeQual()->isCharType())
+         isa<ObjCEncodeExpr>(ILE->getInit(0))))
       return Visit(ILE->getInit(0));
+
+    std::vector<llvm::Constant*> Elts;
+    const llvm::ArrayType *AType =
+        cast<llvm::ArrayType>(ConvertType(ILE->getType()));
     const llvm::Type *ElemTy = AType->getElementType();
     unsigned NumElements = AType->getNumElements();