# HG changeset patch # User Christian Kamm # Date 1238319872 -7200 # Node ID 2bff538fa3b932b093d2e93dfa8c4ac67eade8a8 # Parent ed4b050ada4551e7a7c743f0507da98173bd991f# Parent ab186e535e7224751e1a176cc7c2b02ccc00b6b7 Automated merge with http://hg.dsource.org/projects/ldc diff -r ab186e535e72 -r 2bff538fa3b9 dmd/lexer.c --- a/dmd/lexer.c Sun Mar 29 11:43:45 2009 +0200 +++ b/dmd/lexer.c Sun Mar 29 11:44:32 2009 +0200 @@ -118,22 +118,14 @@ switch (value) { case TOKint32v: -#if IN_GCC sprintf(buffer,"%d",(d_int32)int64value); -#else - sprintf(buffer,"%d",int32value); -#endif break; case TOKuns32v: case TOKcharv: case TOKwcharv: case TOKdcharv: -#if IN_GCC sprintf(buffer,"%uU",(d_uns32)uns64value); -#else - sprintf(buffer,"%uU",uns32value); -#endif break; case TOKint64v: diff -r ab186e535e72 -r 2bff538fa3b9 dmd/lexer.h --- a/dmd/lexer.h Sun Mar 29 11:43:45 2009 +0200 +++ b/dmd/lexer.h Sun Mar 29 11:44:32 2009 +0200 @@ -217,8 +217,6 @@ union { // Integers - d_int32 int32value; - d_uns32 uns32value; d_int64 int64value; d_uns64 uns64value; diff -r ab186e535e72 -r 2bff538fa3b9 dmd/parse.c --- a/dmd/parse.c Sun Mar 29 11:43:45 2009 +0200 +++ b/dmd/parse.c Sun Mar 29 11:44:32 2009 +0200 @@ -3985,12 +3985,12 @@ break; case TOKint32v: - e = new IntegerExp(loc, token.int32value, Type::tint32); + e = new IntegerExp(loc, (d_int32)token.int64value, Type::tint32); nextToken(); break; case TOKuns32v: - e = new IntegerExp(loc, token.uns32value, Type::tuns32); + e = new IntegerExp(loc, (d_uns32)token.uns64value, Type::tuns32); nextToken(); break; @@ -4064,17 +4064,17 @@ break; case TOKcharv: - e = new IntegerExp(loc, token.uns32value, Type::tchar); + e = new IntegerExp(loc, (d_uns8)token.uns64value, Type::tchar); nextToken(); break; case TOKwcharv: - e = new IntegerExp(loc, token.uns32value, Type::twchar); + e = new IntegerExp(loc, (d_uns16)token.uns64value, Type::twchar); nextToken(); break; case TOKdcharv: - e = new IntegerExp(loc, token.uns32value, Type::tdchar); + e = new IntegerExp(loc, (d_uns32)token.uns64value, Type::tdchar); nextToken(); break; diff -r ab186e535e72 -r 2bff538fa3b9 gen/llvmhelpers.cpp --- a/gen/llvmhelpers.cpp Sun Mar 29 11:43:45 2009 +0200 +++ b/gen/llvmhelpers.cpp Sun Mar 29 11:44:32 2009 +0200 @@ -1316,7 +1316,7 @@ } char tmp[21]; // probably excessive, but covers a uint64_t - sprintf(tmp, "%lu", gTargetData->getTypeSizeInBits(DtoType(T))); + sprintf(tmp, "%lu", (unsigned long) gTargetData->getTypeSizeInBits(DtoType(T))); // replace # in name with bitsize name = td->intrinsicName; diff -r ab186e535e72 -r 2bff538fa3b9 gen/toir.cpp --- a/gen/toir.cpp Sun Mar 29 11:43:45 2009 +0200 +++ b/gen/toir.cpp Sun Mar 29 11:44:32 2009 +0200 @@ -611,9 +611,8 @@ if (e1type != e2type) { if (e1type->ty == Tpointer) { Logger::println("add to pointer"); - if (r->isConst()) { - llvm::ConstantInt* cofs = llvm::cast(r->isConst()->c); - if (cofs->isZero()) { + if (DConstValue* cv = r->isConst()) { + if (cv->c->isNullValue()) { Logger::println("is zero"); return new DImValue(type, l->getRVal()); }