[dmd 2.066-b1] DList. Cannot remove from an un-initialized List
NCrashed via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Jul 8 06:09:46 PDT 2014
On Tuesday, 8 July 2014 at 13:06:34 UTC, NCrashed wrote:
> This was working under 2.065:
> ```
> import std.container;
>
> void main()
> {
> DList!int list;
> list.clear();
> }
> ```
>
> Run-time assertion:
> ```
> core.exception.AssertError@/usr/include/dmd/phobos/std/container/dlist.d(480):
> Cannot remove from an un-initialized List
> ----------------
> /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow @nogc @safe
> std.container.dlist.DList!(int).DList.Range
> std.container.dlist.DList!(int).DList.remove(std.container.dlist.DList!(int).DList.Range)+0x90)
> [0x441830]
> /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow @nogc @safe
> void std.container.dlist.DList!(int).DList.clear()+0x65)
> [0x4410dd]
> /home/ncrashed/dev/d/dmd-test/dmd-test(_Dmain+0x1a) [0x43df3a]
> /home/ncrashed/dev/d/dmd-test/dmd-test(_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv+0x28)
> [0x44aeac]
> /home/ncrashed/dev/d/dmd-test/dmd-test(void
> rt.dmain2._d_run_main(int, char**, extern (C) int
> function(char[][])*).tryExec(scope void delegate())+0x2d)
> [0x44adf1]
> /home/ncrashed/dev/d/dmd-test/dmd-test(void
> rt.dmain2._d_run_main(int, char**, extern (C) int
> function(char[][])*).runAll()+0x2d) [0x44ae51]
> /home/ncrashed/dev/d/dmd-test/dmd-test(void
> rt.dmain2._d_run_main(int, char**, extern (C) int
> function(char[][])*).tryExec(scope void delegate())+0x2d)
> [0x44adf1]
> /home/ncrashed/dev/d/dmd-test/dmd-test(_d_run_main+0x192)
> [0x44ad66]
> /home/ncrashed/dev/d/dmd-test/dmd-test(main+0x25) [0x448355]
> /lib64/libc.so.6(__libc_start_main+0xf5) [0x39e9021d65]
>
> ```
>
> Does DList requires any explicit initialization now or it is a
> regression?
And some addition:
```
import std.container;
void main()
{
DList!int list;
list.insert = 42;
list.clear(); list.clear();
}
```
Output:
```
core.exception.AssertError@/usr/include/dmd/phobos/std/container/dlist.d(481):
Remove: Range is empty
----------------
/home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow @nogc @safe
std.container.dlist.DList!(int).DList.Range
std.container.dlist.DList!(int).DList.remove(std.container.dlist.DList!(int).DList.Range)+0xcc)
[0x4419b4]
/home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow @nogc @safe
void std.container.dlist.DList!(int).DList.clear()+0x65)
[0x441225]
/home/ncrashed/dev/d/dmd-test/dmd-test(_Dmain+0x31) [0x43e081]
/home/ncrashed/dev/d/dmd-test/dmd-test(_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv+0x28)
[0x44b0cc]
/home/ncrashed/dev/d/dmd-test/dmd-test(void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate())+0x2d)
[0x44b011]
/home/ncrashed/dev/d/dmd-test/dmd-test(void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).runAll()+0x2d) [0x44b071]
/home/ncrashed/dev/d/dmd-test/dmd-test(void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate())+0x2d)
[0x44b011]
/home/ncrashed/dev/d/dmd-test/dmd-test(_d_run_main+0x192)
[0x44af86]
/home/ncrashed/dev/d/dmd-test/dmd-test(main+0x25) [0x448575]
/lib64/libc.so.6(__libc_start_main+0xf5) [0x39e9021d65]
```
More information about the Digitalmars-d-learn
mailing list