diff options
author | Ben Maurer <benm@mono-cvs.ximian.com> | 2004-09-06 23:55:37 +0400 |
---|---|---|
committer | Ben Maurer <benm@mono-cvs.ximian.com> | 2004-09-06 23:55:37 +0400 |
commit | ef2fad35d789329444360c52f733d4035d595271 (patch) | |
tree | 7ac6f8f9a10a32de85bc7b58bcacf307bed96441 /mcs | |
parent | a8ff721d69504d8ecab476b2add20bd9d3b6ec62 (diff) |
2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
* expression.cs: Pointer arith always needs to do a conv.i
if the operand is a long. fix 65320
svn path=/trunk/mcs/; revision=33442
Diffstat (limited to 'mcs')
-rwxr-xr-x | mcs/mcs/ChangeLog | 5 | ||||
-rwxr-xr-x | mcs/mcs/expression.cs | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index b2b4d1fb617..3623b8a65bb 100755 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,8 @@ +2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net> + + * expression.cs: Pointer arith always needs to do a conv.i + if the operand is a long. fix 65320 + 2004-09-04 Marek Safar <marek.safar@seznam.cz> Fixed cs0619-37.cs, cs0619-38.cs diff --git a/mcs/mcs/expression.cs b/mcs/mcs/expression.cs index 2d34749aec3..98905c88978 100755 --- a/mcs/mcs/expression.cs +++ b/mcs/mcs/expression.cs @@ -3392,8 +3392,11 @@ namespace Mono.CSharp { else if (rtype == TypeManager.uint64_type) ig.Emit (OpCodes.Conv_U8); ig.Emit (OpCodes.Mul); - ig.Emit (OpCodes.Conv_I); } + + if (rtype == TypeManager.int64_type || rtype == TypeManager.uint64_type) + ig.Emit (OpCodes.Conv_I); + if (is_add) ig.Emit (OpCodes.Add); else |