From: Eli Friedman Date: Thu, 21 Feb 2008 17:45:41 +0000 (+0000) Subject: Fix brace-enclosed string initializers for char arrays. From pr2079, X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4d1c01860708c05757f6a0e17fd90e584000c752;p=clang Fix brace-enclosed string initializers for char arrays. From pr2079, ahtough I had the fix in my tree previously. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47439 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CodeGen/CGExprConstant.cpp b/CodeGen/CGExprConstant.cpp index cca5982f6d..2cdd5bbb3e 100644 --- a/CodeGen/CGExprConstant.cpp +++ b/CodeGen/CGExprConstant.cpp @@ -69,9 +69,12 @@ public: llvm::Constant *EmitArrayInitialization(InitListExpr *ILE, const llvm::ArrayType *AType) { - - std::vector Elts; - unsigned NumInitElements = ILE->getNumInits(); + std::vector Elts; + unsigned NumInitElements = ILE->getNumInits(); + // FIXME: Check for wide strings + if (NumInitElements > 0 && isa(ILE->getInit(0)) && + ILE->getType()->getAsArrayType()->getElementType()->isCharType()) + return Visit(ILE->getInit(0)); const llvm::Type *ElemTy = AType->getElementType(); unsigned NumElements = AType->getNumElements();