[Issue 15961] New: [REG-master] ICE with instance field introduced by anonymous struct
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Apr 27 05:28:58 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=15961
Issue ID: 15961
Summary: [REG-master] ICE with instance field introduced by
anonymous struct
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: ice, wrong-code
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: k.hara.pg at gmail.com
Test case:
struct SliceOverIndexed(T)
{
enum assignableIndex = T.init;
}
struct Grapheme
{
SliceOverIndexed!Grapheme opSlice()
{
assert(0);
}
struct
{
ubyte* ptr_;
}
}
Command line and stack trace of debug build git-master dmd:
$ dmd -o- test
DMD v2.072.0 DEBUG
core.exception.AssertError at aggregate.d(593): Assertion failure
----------------
0x005ABC47 in _d_assert
0x004038E0 in AggregateDeclaration at
c:\d2home\dmd2\src\dmd\src\aggregate.d(594)
0x00403919 in AggregateDeclaration at
c:\d2home\dmd2\src\dmd\src\aggregate.d(617)
0x00407D40 in AnonDeclaration at c:\d2home\dmd2\src\dmd\src\attrib.d(744)
0x0044DD0C in StructDeclaration at c:\d2home\dmd2\src\dmd\src\dstruct.d(566)
0x0040320A in AggregateDeclaration at
c:\d2home\dmd2\src\dmd\src\aggregate.d(322)
0x0040328C in AggregateDeclaration at
c:\d2home\dmd2\src\dmd\src\aggregate.d(343)
0x004BFC1E in TypeStruct at c:\d2home\dmd2\src\dmd\src\mtype.d(8051)
0x004B5229 in Type at c:\d2home\dmd2\src\dmd\src\mtype.d(2421)
0x004B5659 in Type at c:\d2home\dmd2\src\dmd\src\mtype.d(2532)
0x004B598D in Type at c:\d2home\dmd2\src\dmd\src\mtype.d(2628)
0x004BF321 in TypeStruct at c:\d2home\dmd2\src\dmd\src\mtype.d(7875)
0x00475110 in DotIdExp at c:\d2home\dmd2\src\dmd\src\expression.d(8825)
0x00473F90 in DotIdExp at c:\d2home\dmd2\src\dmd\src\expression.d(8445)
0x0049FD50 in ExpInitializer at c:\d2home\dmd2\src\dmd\src\init.d(775)
0x0042A8C0 in VarDeclaration at c:\d2home\dmd2\src\dmd\src\declaration.d(1091)
0x0044D6AD in StructDeclaration at c:\d2home\dmd2\src\dmd\src\dstruct.d(374)
0x0045FF05 in TemplateInstance at c:\d2home\dmd2\src\dmd\src\dtemplate.d(8205)
0x0045FF5C in TemplateInstance at c:\d2home\dmd2\src\dmd\src\dtemplate.d(8223)
0x0045C774 in TemplateInstance at c:\d2home\dmd2\src\dmd\src\dtemplate.d(6309)
0x0045CD9F in TemplateInstance at c:\d2home\dmd2\src\dmd\src\dtemplate.d(6539)
0x004BE5A9 in TypeInstance at c:\d2home\dmd2\src\dmd\src\mtype.d(7406)
0x004BE656 in TypeInstance at c:\d2home\dmd2\src\dmd\src\mtype.d(7428)
0x004BB41C in TypeFunction at c:\d2home\dmd2\src\dmd\src\mtype.d(5876)
0x004873BA in FuncDeclaration at c:\d2home\dmd2\src\dmd\src\func.d(725)
0x0044D6AD in StructDeclaration at c:\d2home\dmd2\src\dmd\src\dstruct.d(374)
0x00445A5B in Module at c:\d2home\dmd2\src\dmd\src\dmodule.d(994)
0x004B07C3 in int ddmd.mars.tryMain(uint, const(char)**) at
c:\d2home\dmd2\src\dmd\src\mars.d(1431)
0x004B11D3 in _Dmain at c:\d2home\dmd2\src\dmd\src\mars.d(1655)
0x005AD9A2 in D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv
0x005AD977 in void rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).runAll()
0x005AD88B in _d_run_main
0x004B170C in main
0x005C1F4D in mainCRTStartup
0x7605338A in BaseThreadInitThunk
0x77AC9A02 in RtlInitializeExceptionChain
0x77AC99D5 in RtlInitializeExceptionChain
This is a regression from 2.066. Since 2.066 to 2.068, the code had displayed
an assertion failure:
Assertion failure: 'alignment > 0 && !(alignment & (alignment - 1))' on line
455 in file 'struct.c'
abnormal program termination
But from 2.069, dmd codebase was switched to D, then the assertion failure no
longer happen with released dmd, and I guess it would have been wrong code bug
because of incorrect alignment.
--
More information about the Digitalmars-d-bugs
mailing list