[Issue 8153] Warning about toHash signature is incorrect on x86_64

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat May 26 15:08:14 PDT 2012


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


Jonathan M Davis <jmdavisProg at gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Warning about toHash is     |Warning about toHash
                   |incorrect                   |signature is incorrect on
                   |                            |x86_64


--- Comment #1 from Jonathan M Davis <jmdavisProg at gmx.com> 2012-05-26 15:09:58 PDT ---
Sorry, I accidentally hit enter. Here's the bug description:
------------------------------------------------------------

This code:

struct S
{
    size_t toHash() const pure
    {
        return 42;
    }

    string val;
}

void main()
{
}


results in this error with -w:

q.d(3): Warning: toHash() must be declared as extern (D) uint toHash() const
nothrow @safe, not const pure ulong()

The _correct_ signature for toHash is

size_t toHash() @safe const pure nothrow

The warning incorrectly lists uint. It should say size_t. It should probably
also say pure, but that might not be required yet given the flux that toHash,
toString, opEquals, et al. are in at the moment with regards to their required
attributes.

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