[Bug 157] using -O{1,2,3} together with -g causes ICE (seg fault)

via D.gnu d.gnu at puremagic.com
Wed Aug 2 18:15:52 PDT 2017


https://bugzilla.gdcproject.org/show_bug.cgi?id=157

--- Comment #8 from Iain Buclaw <ibuclaw at gdcproject.org> ---
Reduced test (uses two imports):
---
struct Bytecode
{
    uint data;
}

@trusted ctSub(U)(string format, U args)
{
    import std.conv : to;
    foreach (i; format) 
        return  format~ to!string(args);
    return format;
}

struct CtContext
{
    import std.uni : CodepointSet;

    CodepointSet[] charsets;

    string ctAtomCode(Bytecode[] ir)
    {
        string code;
        switch (code)
        {
            OrChar:
                code ~=  ``;
                for (uint i ; i ;)
                    code ~= ctSub(``, ir[i].data);
                charsets[ir[0].data].toSourceCode;
                break;

            default:
                assert(0);
        }
        return code;
    }
}
---

And compiling:
---
$ gdc backtracking.d -v 2>&1 | grep -E ".toChars$"
function  std.conv.toChars!(16, char, cast(LetterCase)false, uint).toChars
function  std.conv.toChars!(16, char, cast(LetterCase)true, uint).toChars
function  std.conv.toChars!(2, char, cast(LetterCase)true, uint).toChars
function  std.conv.toChars!(8, char, cast(LetterCase)true, uint).toChars

$ dmd backtracking.d -v 2>&1 | grep -E ".toChars$"
function  std.conv.toChars!(10, char, cast(LetterCase)true, uint).toChars
function  std.conv.toChars!(16, char, cast(LetterCase)false, uint).toChars
function  std.conv.toChars!(16, char, cast(LetterCase)true, uint).toChars
function  std.conv.toChars!(2, char, cast(LetterCase)true, uint).toChars
function  std.conv.toChars!(8, char, cast(LetterCase)true, uint).toChars
---

Yes, it seems that there is something not quite aligned between the frontends
here.

Though not sure if this is related to this particular bug just yet. ;-)

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the D.gnu mailing list