diff options
Diffstat (limited to 'clang/CodeGen/CGExprConstant.cpp')
| -rw-r--r-- | clang/CodeGen/CGExprConstant.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/CodeGen/CGExprConstant.cpp b/clang/CodeGen/CGExprConstant.cpp index cca5982f6db..2cdd5bbb3ea 100644 --- a/clang/CodeGen/CGExprConstant.cpp +++ b/clang/CodeGen/CGExprConstant.cpp @@ -69,9 +69,12 @@ public: llvm::Constant *EmitArrayInitialization(InitListExpr *ILE, const llvm::ArrayType *AType) { - - std::vector<llvm::Constant*> Elts; - unsigned NumInitElements = ILE->getNumInits(); + std::vector<llvm::Constant*> Elts; + unsigned NumInitElements = ILE->getNumInits(); + // FIXME: Check for wide strings + if (NumInitElements > 0 && isa<StringLiteral>(ILE->getInit(0)) && + ILE->getType()->getAsArrayType()->getElementType()->isCharType()) + return Visit(ILE->getInit(0)); const llvm::Type *ElemTy = AType->getElementType(); unsigned NumElements = AType->getNumElements(); |

