-- a.d --
import b;
-- b.d --
import foo 0
dmd a.d
> b.d(1): ';' expected
> Segmentation fault
dmd b.d
> b.d(1): ';' expected
Program received signal SIGSEGV, Segmentation fault.
0x0000000000423610 in DsymbolTable::lookup (this=0x6118b0, ident=0x0) at
dmd/dsymbol.c:858
858 sv = tab->lookup((char*)ident->string, ident->len);
Current language: auto; currently c++
(gdb) bt
#0 0x0000000000423610 in DsymbolTable::lookup (this=0x6118b0, ident=0x0) at
dmd/dsymbol.c:858
#1 0x00000000004540d2 in Import::load (this=0x630360, sc=0x62fb10) at
dmd/import.c:90
#2 0x00000000004542d1 in Import::semantic (this=0x630360, sc=0x62fb10) at
dmd/import.c:120
#3 0x0000000000465aa9 in Module::semantic (this=0x62fea0) at dmd/module.c:652
#4 0x0000000000454229 in Import::load (this=0x61a1d0, sc=0x61a600) at
dmd/import.c:110
#5 0x00000000004542d1 in Import::semantic (this=0x61a1d0, sc=0x61a600) at
dmd/import.c:120
#6 0x0000000000465aa9 in Module::semantic (this=0x619cc0) at dmd/module.c:652
#7 0x00000000004640dc in main (argc=8, argv=0x619750) at dmd/mars.c:782
Created attachment 326
Patch against DMD 2.028
Import shouldn't do any semantic action if it doesn't know which module it's supposed to be importing. The error message I've added may be unnecessary; just returning would probably be OK.