#cat alice.d import bob : Foo; struct Bar { __gshared Foo foo; } #cat bob.d import alice; struct Foo { Bar a; } Compiling with dmd, gdc or ldc causes a segmentation fault. 'dmd alice.d bob.d' segfaults, but 'dmd bob.d alice.d' doesn't. Changing the first import from 'bob : Foo' to just 'bob' stops the segfault. Also happens if foo is a pointer but if boo is one, it doesn't have the problem.
*bar instead of boo
The compiler segfault is fortunately fixed by the PR for issue 15519. https://github.com/D-Programming-Language/dmd/pull/5333 I'll add a test case to avoid future regression.
(In reply to Kenji Hara from comment #2) > I'll add a test case to avoid future regression. https://github.com/D-Programming-Language/dmd/pull/5573
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/ec22537b5e745a286944342f2177237bd27dbb12 fix Issue 15760 - Segfault when compiling when using __gshared and selective import https://github.com/D-Programming-Language/dmd/commit/96aebe4cce9da42c137890aba692aecf08968b33 Merge pull request #5573 from 9rnsr/fix15760 Issue 15760 - Segfault when compiling when using __gshared and selective import