# HG changeset patch # User Tomas Lindquist Olsen # Date 1223290017 -7200 # Node ID 93433f4b6963bca3efc531501a76e6852c1e3ce5 # Parent 961221d5a49c368c038feb834712b3395cf56427 Added -version=Tango in default llvmdc.conf Fixed problem with array casts, all DWT modules needed for HelloWorld1 samples now compile. Still some linking issues. diff -r 961221d5a49c -r 93433f4b6963 bin/llvmdc.conf --- a/bin/llvmdc.conf Mon Oct 06 10:23:25 2008 +0200 +++ b/bin/llvmdc.conf Mon Oct 06 12:46:57 2008 +0200 @@ -1,4 +1,4 @@ [Environment] -DFLAGS=-I%@P%/../tango -I%@P%/../tango/lib/common -L-L%@P%/../lib +DFLAGS=-I%@P%/../tango -I%@P%/../tango/lib/common -L-L%@P%/../lib -version=Tango diff -r 961221d5a49c -r 93433f4b6963 gen/arrays.cpp --- a/gen/arrays.cpp Mon Oct 06 10:23:25 2008 +0200 +++ b/gen/arrays.cpp Mon Oct 06 12:46:57 2008 +0200 @@ -998,10 +998,12 @@ rval2 = DtoArrayCastLength(DtoArrayLen(usl), ety, ptrty->getContainedType(0)); } else { - LLValue* uval = u->getRVal(); if (fromtype->ty == Tsarray) { + LLValue* uval = u->getRVal(); + if (Logger::enabled()) Logger::cout() << "uvalTy = " << *uval->getType() << '\n'; + assert(isaPointer(uval->getType())); const LLArrayType* arrty = isaArray(uval->getType()->getContainedType(0)); @@ -1016,15 +1018,10 @@ rval = DtoBitCast(uval, ptrty); } else { - LLValue* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false); - LLValue* one = llvm::ConstantInt::get(LLType::Int32Ty, 1, false); - rval2 = DtoGEP(uval,zero,zero); - rval2 = DtoLoad(rval2); + rval2 = DtoArrayLen(u); rval2 = DtoArrayCastLength(rval2, ety, ptrty->getContainedType(0)); - rval = DtoGEP(uval,zero,one); - rval = DtoLoad(rval); - //Logger::cout() << *e->mem->getType() << '|' << *ptrty << '\n'; + rval = DtoArrayPtr(u); rval = DtoBitCast(rval, ptrty); } } diff -r 961221d5a49c -r 93433f4b6963 llvmdc-tango --- a/llvmdc-tango Mon Oct 06 10:23:25 2008 +0200 +++ b/llvmdc-tango Mon Oct 06 12:46:57 2008 +0200 @@ -32,7 +32,7 @@ [compile] -cmd=llvmdc -version=Tango -c $i +cmd=llvmdc -c $i flag=$i incdir=-I$i