diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2012-03-09 03:06:56 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2012-03-09 03:06:56 +0000 |
| commit | effcd47eef464765c84130b667ef296da104756e (patch) | |
| tree | 8745231f3534d28da539093bcc97ac57e18fe5f4 /clang/lib | |
| parent | 1bb80affe85d3497457645dd20957136f708468a (diff) | |
| download | bcm5719-llvm-effcd47eef464765c84130b667ef296da104756e.tar.gz bcm5719-llvm-effcd47eef464765c84130b667ef296da104756e.zip | |
Make sure constant emission handles initializer lists with strings correctly. Part of <rdar://problem/10957867>.
llvm-svn: 152370
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/CGExprConstant.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 61c10bbe4f3..fb019f4d00a 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -763,7 +763,9 @@ public: llvm::Constant *EmitArrayInitialization(InitListExpr *ILE) { unsigned NumInitElements = ILE->getNumInits(); - if (NumInitElements == 1 && ILE->getType() == ILE->getInit(0)->getType() && + if (NumInitElements == 1 && + CGM.getContext().hasSameUnqualifiedType(ILE->getType(), + ILE->getInit(0)->getType()) && (isa<StringLiteral>(ILE->getInit(0)) || isa<ObjCEncodeExpr>(ILE->getInit(0)))) return Visit(ILE->getInit(0)); |

