www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 10993] New: mangling of voldemort types with lambdas changes during return type inference

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10993

           Summary: mangling of voldemort types with lambdas changes
                    during return type inference
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: r.sagitario gmx.de


--- Comment #0 from Rainer Schuetze <r.sagitario gmx.de> 2013-09-08 01:55:52
PDT ---
Reduced from the cartesianProduct unittests:

module test3;

//import std.traits;

auto foo(T)(T a)
{
    static immutable typeof(a) q;
    pragma(msg, "foo: " ~ typeof(q).mangleof);
    return q;
}

struct test(alias fn)
{
    bool ini = true;
    void* p;
}

auto fun()
{
    auto x = foo!()(test!(a=>a)());
    pragma(msg, "fun: " ~ typeof(x).mangleof);

    return x; //typeid(x);
}

void main()
{
    const x = fun();
    pragma(msg, "x  : " ~ typeof(x).mangleof);
    auto y = cast()x;
    pragma(msg, "y  : " ~ typeof(y).mangleof);
}

compile with "dmd test3.d" yields:

foo: yS5test33fun32__T4testS205test33fun9__lambda2Z4test
fun: yS5test33fun32__T4testS205test33fun9__lambda2Z4test
x  : yS5test33fun32__T4testS205test33fun9__lambda2Z4test
y  :
S5test33funFZyS5test33fun32__T4testS205test33fun9__lambda2Z4test32__T4testS
205test33fun9__lambda2Z4test

i.e. casting away immutable leads to a completely new mangling while it should
have removed the 'y' at the start only. This causes link errors when trying to
produce complete TypeInfo data.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 08 2013
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10993



--- Comment #1 from github-bugzilla puremagic.com 2013-09-22 22:02:44 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/be57510ce308da696ed293d4acc4b233f3258b30
Merge pull request #2585 from rainers/issue10993

fix Issue 10993: mangling of voldemort types with lambdas changes during return
type inference

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 22 2013
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10993


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull, wrong-code
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 22 2013