www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 7528] New: The core.atomic module does not have implementations when compiling with -D.

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7528

           Summary: The core.atomic module does not have implementations
                    when compiling with -D.
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: druntime
        AssignedTo: nobody puremagic.com
        ReportedBy: opantm+spam gmail.com



Most methods in core.atomic are versioned out with a stub method replacing them
when generating documentation. If you attempt to use something like atomicOp
for example, it will still compile but do nothing and always return T.init
(leading to quite a bit of confusion). If you try to use cas, you get a symbol
undefined, as the actual implementation is excluded when version(D_Doc) is set.

Test case:

module Test;
import std.stdio;
import core.atomic;

void main() {    
    int* a = new int();
    *a = 2;
    int* b = new int();
    *b = 1;    
    bool Result = cas(cast(shared)&a, cast(shared)a, cast(shared)b);    
    writeln(Result, ": ", *a, ", ", *b);
}

Compile with 'dmd test.d' and it runs and prints "true: 1, 1". Compile with
'dmd test.d -D' and it will fail to link with "Error 42: Symbol Undefined
_D4core6atomic20__T3casTPOiTPOiTPOiZ3casFPOPiOxPiOPiZb".

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 16 2012
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7528


Kapps <opantm+spam gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE



Looks like this is a duplicate of 5930, which didn't appear in my search for
atomic.

Worth keeping in mind that this does cause incorrect results to be generated
without warning when using atomic operations.

*** This issue has been marked as a duplicate of issue 5930 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 23 2012