compiling this code with debug info:
class C
{
int field = 3;
static int stat = 9;
__gshared int gs = 8;
static shared(int) shrd = 6;
}
int main()
{
C c = new C;
return 0;
}
and breaking at the return statement in a debugger, all members of C are shown but gs.
Dmd does not emit the __gshared member to the respective CV record:
0x13dd : Length = 62, Leaf = 0x1203 LF_FIELDLIST
list[0] = LF_BCLASS, public, type = 0x1016, offset = 0
list[1] = LF_MEMBER, public, type = T_INT4(0074), offset = 16
member name = 'field'
list[2] = LF_STATICMEMBER, public, type = T_INT4(0074) member name = 'stat'
list[3] = LF_STATICMEMBER, public, type = T_INT4(0074) member name = 'shrd'
Comment #1 by robert.schadek — 2024-12-13T19:04:12Z