[Issue 4443] Optimizer produces wrong code for || or && with struct arrays

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Aug 4 00:07:02 PDT 2010


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



--- Comment #4 from Don <clugdbug at yahoo.com.au> 2010-08-04 00:07:00 PDT ---
(In reply to comment #3)
>                 if (!sregs)
>                     sregs = ALLREGS & ~rretregs;
>                 c3 = allocreg(&sregs,&reg,ty);
>             }
> + // BUG: We should ensure there is only register in retregs
>             reg1 = findreg(retregs);

That should be:

                if (!sregs)
                    sregs = ALLREGS & ~rretregs;
                c3 = allocreg(&sregs,&reg,ty);
            }
+            assert( (retregs & (retregs-1)) == 0); // Must be only one
register
            reg1 = findreg(retregs);

There are probably contrived cases where this bug could occur in C++ code, but
I don't think it would ever occur in practice.

-- 
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