[Issue 1685] Array index is evaluated twice
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Fri Nov 23 06:37:26 PST 2007
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=1685
casio_fifty at yahoo.com.hk changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
         OS/Version|Linux                       |All
------- Comment #1 from casio_fifty at yahoo.com.hk  2007-11-23 08:37 -------
Can be reproduce on Windows with DMD too. Both v1.023 & v2.007 are affected. 
It seems that the line is interpreted as
/*1*/    a[f()]
/*2*/ +  cast(int)42L
/*3*/ -> a[f()]
f() is evaluated twice only when a downward cast is needed, so replacing 42L by
42.0 will trigger the 2nd f(), but simpler types such as bool and char won't.
Also affects other *= methods, and associative arrays.
-- 
    
    
More information about the Digitalmars-d-bugs
mailing list