https://issues.dlang.org/show_bug.cgi?id=19176

          Issue ID: 19176
           Summary: Dmd crashes because of __traits(getUnitTests)
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nob...@puremagic.com
          Reporter: fediushin.an...@yandex.ru

Test case:

```
void main() {
        __traits(getUnitTests, foo);
}

template foo() {
        static if(true) {
                enum bar;
        } else {
                enum bar;
        }
}
```

Results in:
```
$ dmd -v -c -unittest foo.d
predefs   DigitalMars Posix linux ELFv1 LittleEndian D_Version2 all D_SIMD
D_InlineAsm_X86_64 X86_64 CRuntime_Glibc D_LP64 D_PIC unittest assert
D_HardFloat
binary    dmd
version   v2.081.2
config    /etc/dmd.conf
DFLAGS    -I/usr/include/dlang/dmd -L-L/usr/lib -L--export-dynamic -fPIC
parse     foo
importall foo
import    object        (/usr/include/dlang/dmd/object.d)
semantic  foo
entry     main          foo.d
semantic2 foo
semantic3 foo
foo.d(6): Error: static if conditional cannot be at global scope
zsh: segmentation fault (core dumped)  dmd -v -c -unittest foo.d
```

--

Reply via email to