changeset 183:3cdf4b0c75a1 trunk

[svn r199] Fixed: still some small issues with string literals implicitly converting to different pointer types. Should be fixed now!
author lindquist
date Wed, 07 May 2008 20:22:42 +0200
parents 6526cf5bb2be
children f5ca6bbbf1d7
files gen/toir.cpp
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/gen/toir.cpp	Wed May 07 19:54:01 2008 +0200
+++ b/gen/toir.cpp	Wed May 07 20:22:42 2008 +0200
@@ -416,12 +416,12 @@
     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<llvm::Constant*> vals;
         for(size_t i=0; i<len; ++i) {
@@ -430,7 +430,7 @@
         vals.push_back(llvm::ConstantInt::get(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
-    else if (cty->ty == Tdchar) {
+    else if (cty->size() == 4) {
         uint32_t* str = (uint32_t*)string;
         std::vector<llvm::Constant*> vals;
         for(size_t i=0; i<len; ++i) {
@@ -500,12 +500,12 @@
     const llvm::ArrayType* at = llvm::ArrayType::get(ct,endlen);
 
     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, nullterm);
     }
-    else if (cty->ty == Twchar) {
+    else if (cty->size() == 2) {
         uint16_t* str = (uint16_t*)string;
         std::vector<llvm::Constant*> vals;
         for(size_t i=0; i<len; ++i) {
@@ -515,7 +515,7 @@
             vals.push_back(llvm::ConstantInt::get(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
-    else if (cty->ty == Tdchar) {
+    else if (cty->size() == 4) {
         uint32_t* str = (uint32_t*)string;
         std::vector<llvm::Constant*> vals;
         for(size_t i=0; i<len; ++i) {