Thread overview
[Issue 21152] DMD crashing using __gshared inside class
Aug 13, 2020
Simen Kjaeraas
Aug 25, 2020
naydef
August 13, 2020
https://issues.dlang.org/show_bug.cgi?id=21152

Simen Kjaeraas <simen.kjaras@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simen.kjaras@gmail.com

--- Comment #1 from Simen Kjaeraas <simen.kjaras@gmail.com> ---
Reduced:

class C {
    __gshared C global;
}


void fun(void* v) {}

void main() {
    C var;
    fun(var.global);
}


Works with class or struct.
If I change the type of global to C* it compiles.
If I call fun(C.global), it gives an error message and does not crash.
If fun is void fun(C c) {}, it compiles.
Assigning void* p = var.global; gives an error message and does not crash.

--
August 25, 2020
https://issues.dlang.org/show_bug.cgi?id=21152

naydef <naydef@abv.bg> changed:

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

--- Comment #2 from naydef <naydef@abv.bg> ---
Using DMD32 D Compiler v2.093.1-dirty the code no longer causes crashes.
The issue looks fixed.
Marking as RESOLVED

--
August 25, 2020
https://issues.dlang.org/show_bug.cgi?id=21152

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |moonlightsentinel@disroot.o
                   |                            |rg
         Resolution|FIXED                       |WORKSFORME

--