[Mono-bugs] [Bug 502582] MCS produces bad code for multiple assignment of pointer variables

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Feb 24 05:55:12 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=502582

https://bugzilla.novell.com/show_bug.cgi?id=502582#c11


Rodrigo Kumpera <rkumpera at novell.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW
       InfoProvider|rkumpera at novell.com         |

--- Comment #11 from Rodrigo Kumpera <rkumpera at novell.com> 2011-02-24 10:55:11 UTC ---
CSC generates broken code too then.

Play attention to what's on the evaluatio stack:

    .locals init (
        float64*    V_0,
        float64*    V_1)
    IL_0000:  ldc.i4.2 
[i4]
    IL_0001:  ldc.i4.8 
[i4, i4]
    IL_0002:  mul.ovf.un 
[i4]
    IL_0003:  localloc 
[void*]
    IL_0005:  stloc.0 
[]
    IL_0006:  ldloc.0 
[float*]
    IL_0007:  ldloc.0 
[float*, float*]
    IL_0008:  ldc.i4.8 
[float*,float*, i4]
    IL_0009:  add 
[float*, float*]
    IL_000a:  ldc.r8 0.
[float*, float*, double]
    IL_0013:  dup 
[float*, float*, double, double]
    IL_0014:  stloc.1 >>this is wrong, you're trying to store a double on a
float* variable<<
[float*, float*, double]
    IL_0015:  stind.r8 
[float*]
    IL_0016:  ldloc.1 
[float*, double]
    IL_0017:  stind.r8 
[]
    IL_0018:  ret

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list