From 44f53bc164b5c771c33f164ed950a415501bf506 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Wed, 7 May 2008 05:02:48 +0200 Subject: [PATCH] [svn r194] Fixed: string literal constant expressions with static array type was broken. --- gen/toir.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gen/toir.cpp b/gen/toir.cpp index b68761cf..65fc92ce 100644 --- a/gen/toir.cpp +++ b/gen/toir.cpp @@ -528,6 +528,11 @@ llvm::Constant* StringExp::toConstElem(IRState* p) else assert(0); + if (t->ty == Tsarray) + { + return _init; + } + llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage;//WeakLinkage; llvm::GlobalVariable* gvar = new llvm::GlobalVariable(_init->getType(),true,_linkage,_init,"stringliteral",gIR->module); @@ -538,8 +543,7 @@ llvm::Constant* StringExp::toConstElem(IRState* p) if (t->ty == Tpointer) { return arrptr; } - - if (t->ty == Tarray) { + else if (t->ty == Tarray) { llvm::Constant* clen = llvm::ConstantInt::get(DtoSize_t(),len,false); return DtoConstSlice(clen, arrptr); }