[Issue 6670] Compiler seg fault using std.concurrency.atomicOp

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Sep 17 21:02:07 PDT 2011


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



--- Comment #3 from Brad Roberts <braddr at puremagic.com> 2011-09-17 21:01:43 PDT ---
My current reduction:

template isMutable(T)
{
    enum isMutable = !is(T == const) && !is(T == immutable);
}

unittest
{
    static assert(isMutable!(shared const(int)[]));
}

int atomicLoad( ref const shared int val )
{
    return 0;
}

void main()
{
    int a;
    atomicLoad(a);
}

$ dmd bug6670.d
bug6670.d(20): Error: cast(shared(const(int)))a is not an lvalue

Not sure why the unused isMutable template is required, nor why the unittest
block is required when -unittest isn't part of the dmd arguments, but they are
and without them the code compiles.

Don or Daniel, either of you want to take this?  I took it because I originally
thought it was a iasm or backend bug, which are areas I'm more familiar with.

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