digitalmars.D.bugs - [Issue 18814] New: Segmentation Fault in GC From writeln Call
- d-bugmail puremagic.com (118/118) Apr 30 2018 https://issues.dlang.org/show_bug.cgi?id=18814
https://issues.dlang.org/show_bug.cgi?id=18814 Issue ID: 18814 Summary: Segmentation Fault in GC From writeln Call Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: druntime Assignee: nobody puremagic.com Reporter: jack jackstouffer.com Code reduced via dustmite main.d ========= import std.traits; import std.stdio; /** * Custom `string` type optimized for both small sizes and for appending * large amounts of data. */ struct String { /// ditto ref opOpAssign(string op, R)(R r) { convertToBig(); large.ptr[large.len .. r.length] = r; } ubyte isBig() { return small.slen; } void convertToBig() { import core.memory; char* p = cast(char*) GC.malloc(GC.BlkAttr.NO_SCAN); large.ptr = p; } struct Small { ubyte slen; } struct Large { size_t len; char* ptr; } Small small; Large large; } unittest { auto a = String(); a ~= " test test test test test"; writeln(a); } ========= $ dmd -unittest -main -run main.d String(Small(0), Large(0, 10AB9E000)) 0 dmd_runO05sQ2 0x000000010aacf6c8 _D4core7runtime18runModuleUnitTestsUZ19unittestSegvHandlerUNbNiiPSQCm3sys5posix6signal9siginfo_tPvZv + 56 1 libsystem_platform.dylib 0x00007fff512c1f5a _sigtramp + 26 2 ??? 0x000000011a8e9088 0x0 + 4740518024 3 dmd_runO05sQ2 0x000000010aadc8a7 _D2gc4impl12conservativeQw14ConservativeGC__T9runLockedS_DQCeQCeQCcQCnQBs12mallocNoSyncMFNbmkKmxC8TypeInfoZPvS_DQEgQEgQEeQEp10mallocTimelS_DQFiQFiQFgQFr10numMallocslTmTkTmTxQCzZQFcMFNbKmKkKmKxQDsZQDl + 147 4 dmd_runO05sQ2 0x000000010aad66c3 _D2gc4impl12conservativeQw14ConservativeGC6qallocMFNbmkxC8TypeInfoZS4core6memory8BlkInfo_ + 115 5 dmd_runO05sQ2 0x000000010aad58eb gc_qalloc + 51 6 dmd_runO05sQ2 0x000000010aacefec _D4core6memory2GC6qallocFNaNbmkxC8TypeInfoZSQBqQBo8BlkInfo_ + 32 7 dmd_runO05sQ2 0x000000010aac07fa _D3std5array__T8AppenderTAaZQn13ensureAddableMFNaNbNemZv + 286 8 dmd_runO05sQ2 0x000000010aac0c7b _D3std5array__T8AppenderTAaZQn__T3putTAxaZQjMFQiZ10bigDataFunMFNaNbNemZQBu + 31 9 dmd_runO05sQ2 0x000000010aac0bcd _D3std5array__T8AppenderTAaZQn__T3putTAxaZQjMFNaNbNfQoZv + 33 10 dmd_runO05sQ2 0x000000010aac0ba8 _D3std5range10primitives__T5doPutTSQBh5array__T8AppenderTAaZQnTAxaZQBoFNaNbNfKQBsKQtZv + 28 11 dmd_runO05sQ2 0x000000010aac0b88 _D3std5range10primitives__T3putTSQBf5array__T8AppenderTAaZQnTAxaZQBmFNaNbNfKQBsQsZv + 28 12 dmd_runO05sQ2 0x000000010aac0a34 _D3std6format__T10FormatSpecTaZQp__T17writeUpToNextSpecTSQCd5array__T8AppenderTAaZQnZQBxMFNaNfKQBnZb + 184 13 dmd_runO05sQ2 0x000000010aab7c5b _D3std6format__T10FormatSpecTaZQp20__unittest_L1204_C11FNaNfZv + 95 14 dmd_runO05sQ2 0x000000010aab7446 _D4main9__modtestFZv + 14 15 dmd_runO05sQ2 0x000000010aacf720 _D4core7runtime18runModuleUnitTestsUZ14__foreachbody2MFPS6object10ModuleInfoZi + 56 16 dmd_runO05sQ2 0x000000010aac4953 _D6object10ModuleInfo7opApplyFMDFPSQBhQBdZiZ9__lambda2MFyPSQCfQCbZi + 35 17 dmd_runO05sQ2 0x000000010aae8ee6 _D2rt5minfo17moduleinfos_applyFMDFyPS6object10ModuleInfoZiZ14__foreachbody2MFKSQCz19sections_osx_x86_6412SectionGroupZi + 86 18 dmd_runO05sQ2 0x000000010aae8e71 _D2rt5minfo17moduleinfos_applyFMDFyPS6object10ModuleInfoZiZi + 33 19 dmd_runO05sQ2 0x000000010aac492a _D6object10ModuleInfo7opApplyFMDFPSQBhQBdZiZi + 34 20 dmd_runO05sQ2 0x000000010aacf4d7 runModuleUnitTests + 335 21 dmd_runO05sQ2 0x000000010aae12c1 _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZv + 37 22 dmd_runO05sQ2 0x000000010aae124c _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv + 32 23 dmd_runO05sQ2 0x000000010aae11ba _d_run_main + 486 24 dmd_runO05sQ2 0x000000010aab7468 main + 16 25 libdyld.dylib 0x00007fff50fb3015 start + 1 26 ??? 0x0000000000000001 0x0 + 1 Error: program killed by signal 11 --
Apr 30 2018