Bug 51330

Summary: Inline Enum::GetHashCode implementation
Product: [Mono] Runtime Reporter: Marek Safar <masafa>
Component: JITAssignee: Bugzilla <bugzilla>
Status: RESOLVED FIXED    
Severity: normal CC: david, mono-bugs+mono, mono-bugs+runtime, vargaz
Priority: ---    
Version: 4.8.0 (C9)   
Target Milestone: ---   
Hardware: PC   
OS: Mac OS   
Tags: Is this bug a regression?: ---
Last known good build:

Description Marek Safar 2017-01-10 14:45:36 UTC
This would allow us to share CoreFX/CoreRT code more easily as it has such optimization. 

enum Mine { One, Two }

class Program
{
    static int Main()
    {
        for (int i = 0; i < 1000000; ++i)
        	Mine.Two.GetHashCode(); // This does boxing even if 2.GetHashCode does not

        return 0;
    }
}


Relevant CoreFX change https://github.com/dotnet/coreclr/pull/7895
Comment 1 Zoltan Varga 2017-01-15 05:24:26 UTC
https://github.com/mono/mono/pull/4250
Comment 2 Zoltan Varga 2017-01-16 00:58:16 UTC
Fixed in master.