[Issue 18200] New: ICE when building 2.078.0 front-end for Windows MSVC targets using host compilers < 2.078
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Jan 6 15:47:42 UTC 2018
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 at puremagic.com
Reporter: kinke at 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.
--
More information about the Digitalmars-d-bugs
mailing list