I have a large named enum (currently 645 members) of IRC event types. It's big by neccessity[1].

I'm using dub, and both dmd and ldc successfully build it in test and debug modes, but choke and die on plain and release. I bisected it down to when I did a big addition to the enum to encompass virtually all event types there are.

dmd -v:
[...]
code      common
function  kameloso.common.Separator.__xopEquals
function  kameloso.common.Separator.__xtoHash
function  kameloso.common.Settings.__xopEquals
function  kameloso.common.Settings.__xtoHash
function  kameloso.common.scopeguard
function  kameloso.common.scopeguard.scopeString
function  kameloso.common.scopeguard.entryString
function  kameloso.common.KamelosoLogger.this
function  kameloso.common.KamelosoLogger.writeLogMsg
function  kameloso.common.KamelosoLogger.beginLogMsg
function  kameloso.common.KamelosoLogger.logMsgPart
function  kameloso.common.KamelosoLogger.finishLogMsg
zsh: segmentation fault (core dumped) dmd -c -v -w -d -version=Have_kameloso -Isource/ source/arsd/dom.d
Where it stops here varies if I comment stuff out, so I don't think the Logger is at fault.

ldc -v:
[...]
code      irc
code      constants
code      connection
code      config
code      common
/usr/lib/libLLVM-5.0.so(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x2b)[0x7f09953839bb]
/usr/lib/libLLVM-5.0.so(_ZN4llvm3sys17RunSignalHandlersEv+0x56)[0x7f0995381806]
/usr/lib/libLLVM-5.0.so(+0x808953)[0x7f0995381953]
/usr/lib/libpthread.so.0(+0x11da0)[0x7f099496cda0]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x8)[0x561fe42fc128]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
ldc(_ZN16TemplateInstance12needsCodegenEv+0x103)[0x561fe42fc223]
[...]
zsh: segmentation fault (core dumped) ldc -v -w -d -oq -od=.dub/obj -d-version=Have_kameloso -Isource/

What can I do? Merely copying the enum into a test file and compiling with an empty main does nothing, it doesn't seem to be enough to replicate the bug.

(Arch/Manjaro 64-bit, dmd 2.077.0, ldc 1.5.0 based on 2.075.1)

[1] http://defs.ircdocs.horse/defs/numerics.html

Reply via email to