Bug 12577 – ice on compile time struct field access

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2014-04-13T21:49:00Z
Last change time
2014-04-21T04:18:12Z
Keywords
ice
Assigned to
nobody
Creator
ellery-newcomer

Comments

Comment #0 by ellery-newcomer — 2014-04-13T21:49:16Z
the code: template CppClass() { Opts[]Options; CppClassMixins BuildCppClassMixins() { foreach(inh; Options.Inherits) { } } enum Mixins = BuildCppClassMixins; pragma(msg, Mixins.def); } struct CppClassMixins{ } mixin CppClass!(); the fireworks: $ dmd error2.d error2.d(2): Error: undefined identifier Opts dmd: interpret.c:357: virtual void Statement::ctfeCompile(CompiledCtfeFunction*): Assertion `0' failed. Aborted (core dumped)
Comment #1 by k.hara.pg — 2014-04-15T10:26:09Z
(In reply to Ellery Newcomer from comment #0) > $ dmd error2.d > error2.d(2): Error: undefined identifier Opts > dmd: interpret.c:357: virtual void > Statement::ctfeCompile(CompiledCtfeFunction*): Assertion `0' failed. > Aborted (core dumped) ICE is properly fixed in git-head, by fixing issue 12174. And, ICE is always a compiler bug, so they should not be marked as 'enhancement'.
Comment #2 by ellery-newcomer — 2014-04-20T19:45:13Z
uh huh. when did 'normal' stop being the default value for that field?
Comment #3 by k.hara.pg — 2014-04-21T04:18:12Z
(In reply to Ellery Newcomer from comment #2) > uh huh. when did 'normal' stop being the default value for that field? It's when bugzilla is moved to 'issues.dlang.org'.