digitalmars.D.bugs - [Issue 18200] New: ICE when building 2.078.0 front-end for Windows
- d-bugmail puremagic.com (40/40) Jan 06 2018 https://issues.dlang.org/show_bug.cgi?id=18200
https://issues.dlang.org/show_bug.cgi?id=18200 Issue ID: 18200 Summary: ICE when building 2.078.0 front-end for Windows MSVC targets using host compilers < 2.078 Product: D Version: D2 Hardware: All OS: Windows Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: kinke gmx.net The 2.078.0 front-end cannot be built by any recent D host compiler for a Windows MSVC target. Reason is a front-end segfault in the host compiler, triggered by an MSVC-specific check (possibly introduced in 2.071) and exposed by 2.078 visitor refactoring. The following snippet crashes recent DMD versions < 2.078 (when using `-m32mscoff` or `-m64`) and all LDC versions in [1.1, 1.7], LDC 1.0 (2.070) seems to be fine: ``` mixin template VisitMethod(T) { void visit(T arg) {} } extern (C++) class Base { void virtualFunc(int arg) {} } extern (C++) class Derived : Base { mixin VisitMethod!int; } ``` In reality, it's dmd.transitivevisitor.ParseVisitMethods being mixed into dmd.visitor.SemanticTimeTransitiveVisitor. See https://github.com/ldc-developers/ldc/pull/2486#issuecomment-355753668 for more context. --
Jan 06 2018