From 3678dabfd9b948e65abbef1be9d3cbcad43d98ca Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Wed, 7 May 2008 20:22:42 +0200 Subject: [PATCH] [svn r199] Fixed: still some small issues with string literals implicitly converting to different pointer types. Should be fixed now! --- gen/toir.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gen/toir.cpp b/gen/toir.cpp index 65fc92ce..0e2eb6e3 100644 --- a/gen/toir.cpp +++ b/gen/toir.cpp @@ -416,12 +416,12 @@ DValue* StringExp::toElem(IRState* p) const llvm::ArrayType* at = llvm::ArrayType::get(ct,len+1); llvm::Constant* _init; - if (cty->ty == Tchar || cty->ty == Tvoid) { + if (cty->size() == 1) { uint8_t* str = (uint8_t*)string; std::string cont((char*)str, len); _init = llvm::ConstantArray::get(cont,true); } - else if (cty->ty == Twchar) { + else if (cty->size() == 2) { uint16_t* str = (uint16_t*)string; std::vector vals; for(size_t i=0; ity == Tdchar) { + else if (cty->size() == 4) { uint32_t* str = (uint32_t*)string; std::vector vals; for(size_t i=0; ity == Tchar || cty->ty == Tvoid) { + if (cty->size() == 1) { uint8_t* str = (uint8_t*)string; std::string cont((char*)str, len); _init = llvm::ConstantArray::get(cont, nullterm); } - else if (cty->ty == Twchar) { + else if (cty->size() == 2) { uint16_t* str = (uint16_t*)string; std::vector vals; for(size_t i=0; ity == Tdchar) { + else if (cty->size() == 4) { uint32_t* str = (uint32_t*)string; std::vector vals; for(size_t i=0; i