digitalmars.D.bugs - [Issue 20324] New: Calling __traits(getUnitTests) on a template
- d-bugmail puremagic.com (67/67) Oct 26 2019 https://issues.dlang.org/show_bug.cgi?id=20324
https://issues.dlang.org/show_bug.cgi?id=20324 Issue ID: 20324 Summary: Calling __traits(getUnitTests) on a template causes compiler segfault Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: minor Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: carlin.stpierre protonmail.com Compiler segfaults because of the following code: ``` module segfault; template Foo() { unittest {} } void bar() { foreach(member; __traits(derivedMembers, segfault)) { alias a = __traits(getUnitTests, __traits(getMember, segfault, member)); } } ``` Compiler output: ``` $ dmd -v -c -unittest segfault.d predefs DigitalMars Posix linux ELFv1 CRuntime_Glibc CppRuntime_Gcc LittleEndian D_Version2 all D_SIMD D_InlineAsm_X86_64 X86_64 D_LP64 D_PIC unittest assert D_ModuleInfo D_Exceptions D_TypeInfo D_HardFloat binary dmd version v2.088.0 config /etc/dmd.conf DFLAGS -I/usr/include/dmd/phobos -I/usr/include/dmd/druntime/import -L-L/usr/lib/x86_64-linux-gnu -L--export-dynamic -fPIC parse segfault importall segfault import object (/usr/include/dmd/druntime/import/object.d) import core.internal.array.appending (/usr/include/dmd/druntime/import/core/internal/array/appending.d) import core.internal.array.comparison (/usr/include/dmd/druntime/import/core/internal/array/comparison.d) import core.internal.array.equality (/usr/include/dmd/druntime/import/core/internal/array/equality.d) import core.internal.array.casting (/usr/include/dmd/druntime/import/core/internal/array/casting.d) import core.internal.array.concatenation (/usr/include/dmd/druntime/import/core/internal/array/concatenation.d) import core.internal.array.construction (/usr/include/dmd/druntime/import/core/internal/array/construction.d) import core.internal.array.capacity (/usr/include/dmd/druntime/import/core/internal/array/capacity.d) import core.internal.hash (/usr/include/dmd/druntime/import/core/internal/hash.d) import core.internal.traits (/usr/include/dmd/druntime/import/core/internal/traits.d) import core.internal.convert (/usr/include/dmd/druntime/import/core/internal/convert.d) semantic segfault semantic2 segfault semantic3 segfault Segmentation fault (core dumped) ``` --
Oct 26 2019