[Issue 5809] [64 bit] wrong code for *p==0, when widening conversion occurs

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu May 10 07:00:48 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=5809



--- Comment #7 from Don <clugdbug at yahoo.com.au> 2012-05-10 07:02:10 PDT ---
My pull request is wrong. The correct fix is in cgcod.c, line 1795.

In moving to 64 bit, commit 3cdb9f520e0bac17f6da00ef9de86c81e23429aa
made this change:
                            c = genc(NULL,0x81 ^ byte,modregrm(2,7,BPRM),
                                         FLcs,i, FLconst,(targ_uns) 0);
-                            if (REGSIZE == 4 && sz == 2)
+                            if (I32 && sz == 2)
                                 c->Iflags |= CFopsize;
                         }

But this is wrong, it should be 
+                        if ((I32 || I64) && sz == 2) 

This code is now in cod3.c, testcse(), line 1795.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list