Summary: Cannot access __gshared function pointers from static
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD

--- Comment #0 from Andrej Mitrovic <> 2012-03-24 
18:32:23 PDT ---
class Foo
    static int test()
        return c_func();

    extern(C) __gshared int c_func();

test.d(7): Error: need 'this' to access member c_func

The docs say:
__gshared may also be applied to member variables and local variables. In these
cases, **__gshared is equivalent to static**, except that the variable is
shared by all threads rather than being thread local.

And true enough it works fine with regular variables:
class Foo
    static int getX() { return x; }
    extern(C) __gshared int x;

But not with function pointers, unless they're declared outside the class. I
think this is a bug.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to