This is Xamarin's bug tracking system. For product support, please use the support links listed in your Xamarin Account.
Bug 9186 - ulong/float comparison miscompiled on 64bit Macs
: ulong/float comparison miscompiled on 64bit Macs
Status: RESOLVED FIXED
Product: Runtime
Classification: Mono
Component: JIT
: unspecified
: PC Mac OS
: --- normal
: ---
Assigned To: Bugzilla
:
:
:
:
  Show dependency treegraph
 
Reported: 2013-01-02 11:38 EST by Marek Safar
Modified: 2013-01-03 12:54 EST (History)
3 users (show)

See Also:
Tags:
Test Case URL:
External Submit: ---


Attachments

Description Marek Safar 2013-01-02 11:38:33 EST
float b = 0f;
            if (b < ulong.MaxValue)
                Console.WriteLine ("hit");

"hit" is never hit when mono is compiled as 64 bit on mac
Comment 1 Zoltan Varga 2013-01-03 00:04:22 EST
I can't reproduce this. Can you attach a complete testcase plus the generated
.exe ?
Comment 2 Marek Safar 2013-01-03 11:33:24 EST
This is actually AOT issue

class C
{
    public static void Main ()
    {
        ulong ul = ulong.MaxValue;
        System.Console.WriteLine ((float) ul);
    }
}

When compiled and run with mono JIT I get
1.844674E+19
when using --aot I get
NaN

My log

mono test-mcs.exe
1.844674E+19
[mono] ~/git/mono/mcs/mcs$ mono --aot test-mcs.exe
Mono Ahead of Time compiler - compiling assembly
/Users/marek/git/mono/mcs/mcs/test-mcs.exe
Code: 163 Info: 5 Ex Info: 8 Unwind Info: 17 Class Info: 34 PLT: 3 GOT Info: 17
GOT: 28 Offsets: 48
Compiled: 2/2 (100%), No GOT slots: 1 (50%), Direct calls: 0 (100%)
Executing the native assembler: as -arch i386 -W  -o
/var/folders/zw/_2mb6txx19b1c3g9ls4mwngr0000gn/T/mono_aot_1M2W4C.o
/var/folders/zw/_2mb6txx19b1c3g9ls4mwngr0000gn/T/mono_aot_1M2W4C
Executing the native linker: gcc -m32 -dynamiclib -o
/Users/marek/git/mono/mcs/mcs/test-mcs.exe.dylib.tmp
/var/folders/zw/_2mb6txx19b1c3g9ls4mwngr0000gn/T/mono_aot_1M2W4C.o
Generating debug symbols: dsymutil
/Users/marek/git/mono/mcs/mcs/test-mcs.exe.dylib
JIT time: 0 ms, Generation time: 0 ms, Assembly+Link time: 32 ms.
[mono] ~/git/mono/mcs/mcs$ mono test-mcs.exe
NaN
Comment 3 Zoltan Varga 2013-01-03 12:54:24 EST
Fixed in master.

Note You need to log in before you can comment on or make changes to this bug.