Either I'm confused or the gc is

donallen donaldcallen at gmail.com
Thu Oct 22 15:56:31 UTC 2020


Realizing that running this thing under valgrind was easy, I did 
so:

valgrind --leak-check=yes --track-origins=yes ./verifier 
/tmp/Finances.newcash > /tmp/vg.output 2>&1

and then

ddemangle /tmp/vg.output > /tmp/vg-demangled.output

Here is the first half of the output (posting in two parts 
because it's big), which suggests a problem in the gc (the 
messages beginning "requires a link to a commodity ..." are the 
bogus errors produced by the verifier due to looking at zeroed 
Account structs; I've removed the duplicates):

==3854== Memcheck, a memory error detector
==3854== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward 
et al.
==3854== Using Valgrind-3.16.1 and LibVEX; rerun with -h for 
copyright info
==3854== Command: ./verifier /tmp/Finances.newcash
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x21D7C6: nothrow scope void 
gc.impl.conservative.gc.Gcx.collectRoots(void*, void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23BD4B: nothrow void 
core.thread.threadbase.thread_scanAll(scope void delegate(void*, 
void*) nothrow).__lambda2!(core.thread.threadbase.ScanType, 
void*, void*).__lambda2(core.thread.threadbase.ScanType, void*, 
void*) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2472CF: nothrow void 
core.thread.threadbase.scanAllTypeImpl(scope void 
delegate(core.thread.threadbase.ScanType, void*, void*) nothrow, 
void*) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x24720C: nothrow void 
core.thread.threadbase.thread_scanAllType(scope void 
delegate(core.thread.threadbase.ScanType, void*, void*) 
nothrow).__lambda2!(void*).__lambda2(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x211EEF: nothrow void 
core.thread.osthread.callWithStackShell(scope void 
delegate(void*) nothrow) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2471E1: thread_scanAllType (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23BD11: thread_scanAll (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21D901: nothrow void 
gc.impl.conservative.gc.Gcx.collectAllRoots(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21EFF9: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x211EBC: nothrow void 
core.thread.osthread.callWithStackShell(scope void 
delegate(void*) nothrow) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Thread 2:
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x224995: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249A8: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249B7: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249BE: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x224A0A: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x224A4F: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x23C1CB: nothrow @nogc ulong 
gc.bits.GCBits.setLocked(ulong) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x224A6C: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x224A8D: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1E9048: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249D6: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77F8: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249E3: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77F8: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x224987: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77F8: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x224C56: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x225007: nothrow void 
gc.impl.conservative.gc.Gcx.pullFromScanStackImpl!(false).pullFromScanStackImpl() (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F645: nothrow void 
gc.impl.conservative.gc.Gcx.scanBackground() (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x23C0D2: extern (C) nothrow void* 
core.thread.osthread.createLowLevelThread(void delegate() 
nothrow, uint, void delegate() 
nothrow).thread_lowlevelEntry(void*) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x49B03E8: start_thread (in 
/usr/lib/libpthread-2.32.so)
==3854==    by 0x4C3C292: clone (in /usr/lib/libc-2.32.so)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77F8: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Thread 1:
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x224995: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F137: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21A279: nothrow core.memory.BlkInfo_ 
gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E6C5E: gc_qalloc (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E90CB: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1B8D4B: pure nothrow ref @trusted 
std.array.Appender!(immutable(char)[]).Appender 
std.array.Appender!(immutable(char)[]).Appender.__ctor(immutable(char)[]) (/usr/include/dlang/dmd/std/array.d:3261)
==3854==    by 0x1B8C0F: pure nothrow @safe 
std.array.Appender!(immutable(char)[]).Appender 
std.array.appender!(immutable(char)[]).appender() 
(/usr/include/dlang/dmd/std/array.d:3886)
==3854==    by 0x1C81AC: pure @safe immutable(char)[] 
std.format.format!(char, immutable(char)[], 
immutable(char)[]).format(in char[], immutable(char)[], 
immutable(char)[]) (/usr/include/dlang/dmd/std/format.d:6642)
==3854==    by 0x1B7E98: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:272)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77FC: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249A8: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F137: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21A279: nothrow core.memory.BlkInfo_ 
gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E6C5E: gc_qalloc (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E90CB: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1B8D4B: pure nothrow ref @trusted 
std.array.Appender!(immutable(char)[]).Appender 
std.array.Appender!(immutable(char)[]).Appender.__ctor(immutable(char)[]) (/usr/include/dlang/dmd/std/array.d:3261)
==3854==    by 0x1B8C0F: pure nothrow @safe 
std.array.Appender!(immutable(char)[]).Appender 
std.array.appender!(immutable(char)[]).appender() 
(/usr/include/dlang/dmd/std/array.d:3886)
==3854==    by 0x1C81AC: pure @safe immutable(char)[] 
std.format.format!(char, immutable(char)[], 
immutable(char)[]).format(in char[], immutable(char)[], 
immutable(char)[]) (/usr/include/dlang/dmd/std/format.d:6642)
==3854==    by 0x1B7E98: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:272)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77FC: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249B7: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F137: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21A279: nothrow core.memory.BlkInfo_ 
gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E6C5E: gc_qalloc (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E90CB: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1B8D4B: pure nothrow ref @trusted 
std.array.Appender!(immutable(char)[]).Appender 
std.array.Appender!(immutable(char)[]).Appender.__ctor(immutable(char)[]) (/usr/include/dlang/dmd/std/array.d:3261)
==3854==    by 0x1B8C0F: pure nothrow @safe 
std.array.Appender!(immutable(char)[]).Appender 
std.array.appender!(immutable(char)[]).appender() 
(/usr/include/dlang/dmd/std/array.d:3886)
==3854==    by 0x1C81AC: pure @safe immutable(char)[] 
std.format.format!(char, immutable(char)[], 
immutable(char)[]).format(in char[], immutable(char)[], 
immutable(char)[]) (/usr/include/dlang/dmd/std/format.d:6642)
==3854==    by 0x1B7E98: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:272)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77FC: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Conditional jump or move depends on uninitialised 
value(s)
==3854==    at 0x2249BE: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F137: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21A279: nothrow core.memory.BlkInfo_ 
gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E6C5E: gc_qalloc (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E90CB: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1B8D4B: pure nothrow ref @trusted 
std.array.Appender!(immutable(char)[]).Appender 
std.array.Appender!(immutable(char)[]).Appender.__ctor(immutable(char)[]) (/usr/include/dlang/dmd/std/array.d:3261)
==3854==    by 0x1B8C0F: pure nothrow @safe 
std.array.Appender!(immutable(char)[]).Appender 
std.array.appender!(immutable(char)[]).appender() 
(/usr/include/dlang/dmd/std/array.d:3886)
==3854==    by 0x1C81AC: pure @safe immutable(char)[] 
std.format.format!(char, immutable(char)[], 
immutable(char)[]).format(in char[], immutable(char)[], 
immutable(char)[]) (/usr/include/dlang/dmd/std/format.d:6642)
==3854==    by 0x1B7E98: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:272)
==3854==  Uninitialised value was created by a stack allocation
==3854==    at 0x1B77FC: void 
verifier.main(immutable(char)[][]).walk_account_tree(verifier.main(immutable(char)[][]).Account, int) (verifier.d:84)
==3854==
==3854== Use of uninitialised value of size 8
==3854==    at 0x224A0A: nothrow scope void 
gc.impl.conservative.gc.Gcx.mark!(false, 
true).mark(gc.impl.conservative.gc.Gcx.ScanRange!(false).ScanRange) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21F137: nothrow void 
gc.impl.conservative.gc.Gcx.markParallel(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21E959: nothrow ulong 
gc.impl.conservative.gc.Gcx.fullcollect(bool) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21CBFC: nothrow void* 
gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x2227C0: nothrow void* 
gc.impl.conservative.gc.ConservativeGC.runLocked!(gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), gc.impl.conservative.gc.mallocTime, gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) (in /home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x21A279: nothrow core.memory.BlkInfo_ 
gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, 
const(TypeInfo)) (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E6C5E: gc_qalloc (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1E90CB: _d_newitemT (in 
/home/dca/Software/newcash_d/verifier/verifier)
==3854==    by 0x1B8D4B: pure nothrow ref @trusted 
std.array.Appender!(immutable(char)[]).Appender 
std.array.Appender!(immutable(char)[]).Appender.__ctor(immutable(char)[]) (/usr/include/dlang/dmd/std/array.d:3261)
==3854==    b



More information about the Digitalmars-d mailing list