comparison dmd/parse.c @ 1165:226c07c71967

This should fix integers below 64 bit on big-endian systems.
author Frits van Bommel <fvbommel wxs.nl>
date Sun, 29 Mar 2009 01:29:30 +0100
parents b30fe7e1dbb9
children e961851fb8be
comparison
equal deleted inserted replaced
1164:166042b48c28 1165:226c07c71967
3983 e = new SuperExp(loc); 3983 e = new SuperExp(loc);
3984 nextToken(); 3984 nextToken();
3985 break; 3985 break;
3986 3986
3987 case TOKint32v: 3987 case TOKint32v:
3988 e = new IntegerExp(loc, token.int32value, Type::tint32); 3988 e = new IntegerExp(loc, (d_int32)token.int64value, Type::tint32);
3989 nextToken(); 3989 nextToken();
3990 break; 3990 break;
3991 3991
3992 case TOKuns32v: 3992 case TOKuns32v:
3993 e = new IntegerExp(loc, token.uns32value, Type::tuns32); 3993 e = new IntegerExp(loc, (d_uns32)token.uns64value, Type::tuns32);
3994 nextToken(); 3994 nextToken();
3995 break; 3995 break;
3996 3996
3997 case TOKint64v: 3997 case TOKint64v:
3998 e = new IntegerExp(loc, token.int64value, Type::tint64); 3998 e = new IntegerExp(loc, token.int64value, Type::tint64);
4062 e = new IntegerExp(loc, 0, Type::tbool); 4062 e = new IntegerExp(loc, 0, Type::tbool);
4063 nextToken(); 4063 nextToken();
4064 break; 4064 break;
4065 4065
4066 case TOKcharv: 4066 case TOKcharv:
4067 e = new IntegerExp(loc, token.uns32value, Type::tchar); 4067 e = new IntegerExp(loc, (d_uns8)token.uns64value, Type::tchar);
4068 nextToken(); 4068 nextToken();
4069 break; 4069 break;
4070 4070
4071 case TOKwcharv: 4071 case TOKwcharv:
4072 e = new IntegerExp(loc, token.uns32value, Type::twchar); 4072 e = new IntegerExp(loc, (d_uns16)token.uns64value, Type::twchar);
4073 nextToken(); 4073 nextToken();
4074 break; 4074 break;
4075 4075
4076 case TOKdcharv: 4076 case TOKdcharv:
4077 e = new IntegerExp(loc, token.uns32value, Type::tdchar); 4077 e = new IntegerExp(loc, (d_uns32)token.uns64value, Type::tdchar);
4078 nextToken(); 4078 nextToken();
4079 break; 4079 break;
4080 4080
4081 case TOKstring: 4081 case TOKstring:
4082 { unsigned char *s; 4082 { unsigned char *s;