[Issue 15272] [2.069-rc2,inline] nothing written to output when -inline is set
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Sun Nov  1 14:26:46 PST 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=15272
--- Comment #7 from ag0aep6g at gmail.com ---
Here's a reduction that segfaults reliably for me with -release -O -inline:
----
extern(C) void* calloc(size_t, size_t) nothrow pure;
void main()
{
    {
        File file_;
        nop();
    }
    auto scache = StringCache(1);
    foreach (nodePointer; scache.buckets)
    {
        if (nodePointer !is null) new Object;
    }
}
struct File
{
    ~this() {}
}
void nop() {}
struct StringCache
{
    this(size_t bucketCount)
    {
        buckets = (cast(void**) calloc(8, bucketCount))[0 .. bucketCount];
    }
    void*[] buckets;
}
----
(In reply to bb.temp from comment #6)
> Yes. I confirm that the fix you suggested in libdparse works.
> 
> But now I don't know whom the bug belongs to...
> Was it accidental that the program worked without -inline and without the
> libdparse fix ?!
I was mistaken. The bug I saw in libdparse is not there. My "fix" probably just
masks the issue somehow.
--
    
    
More information about the Digitalmars-d-bugs
mailing list