Thread overview
[Issue 6029] New: Bus error on invalid code
May 18, 2011
Robert Clipsham
[Issue 6029] Regression(2.053): DMD stack overflow with invalid alias this
Jul 03, 2011
yebblies
Jul 10, 2011
Robert Clipsham
Nov 03, 2011
Trass3r
Nov 03, 2011
Trass3r
Nov 03, 2011
Trass3r
Feb 01, 2012
yebblies
Feb 05, 2012
Walter Bright
May 18, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029

           Summary: Bus error on invalid code
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Mac OS X
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: robert@octarineparrot.com


--- Comment #0 from Robert Clipsham <robert@octarineparrot.com> 2011-05-18 19:15:08 BST ---
struct A
{
    static A a;
    alias a this;
}

void foo(A a)
{
}

void main()
{
    foo(A);
}

Results in a stack overflow using latest git. No overflow with 2.052.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
July 03, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029


yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |yebblies@gmail.com
         Resolution|                            |FIXED


--- Comment #1 from yebblies <yebblies@gmail.com> 2011-07-04 02:28:16 EST ---
For me this prints:
TypeExp::toElem()
testx.d(13): Error: type A is not an expression

on win32.
So it seems to be fixed, unless it is platform specific.  Please reopen if so.
dmd 2.054

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
July 10, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029



--- Comment #2 from Robert Clipsham <robert@octarineparrot.com> 2011-07-10 12:44:57 BST ---
Works for me now.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 03, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029


Trass3r <mrmocool@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |mrmocool@gmx.de
           Platform|x86                         |All
           See Also|http://d.puremagic.com/issu |
                   |es/show_bug.cgi?id=6030     |
         Resolution|FIXED                       |
         OS/Version|Mac OS X                    |All


--- Comment #3 from Trass3r <mrmocool@gmx.de> 2011-11-03 08:34:59 PDT ---
It isn't fixed.

struct A
{
    static A a;
    alias a this;
}

void foo(A a)
{
}

void main()
{
//  foo(A);    // Error: type A is not an expression
    int s = A; // Error: type A has no value + stack overflow
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 03, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029



--- Comment #4 from Trass3r <mrmocool@gmx.de> 2011-11-03 08:36:39 PDT ---
*** Issue 6030 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 03, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6029



--- Comment #5 from Trass3r <mrmocool@gmx.de> 2011-11-03 08:43:09 PDT ---
caused by mtype.c:
// 'from' is A and 'to' is int
static MATCH aliasthisConvTo(AggregateDeclaration *ad, Type *from, Type *to)
{
    assert(ad->aliasthis);
    Declaration *d = ad->aliasthis->isDeclaration();
    if (d)
    {   assert(d->type);
        Type *t = d->type; // <-- gets struct type A again
        if (d->isVarDeclaration() && d->needThis())
        {
            t = t->addMod(from->mod);
        }
...
        MATCH m = t->implicitConvTo(to);

Guess it should be caught earlier though.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 01, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6029



--- Comment #6 from yebblies <yebblies@gmail.com> 2012-02-01 22:41:31 EST ---
>  int s = A; // Error: type A has no value + stack overflow

I still can't reproduce this.  What version/os?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 05, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6029



--- Comment #7 from github-bugzilla@puremagic.com 2012-02-05 00:02:00 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/8ba1ff182f138ce21bb83fc9868b35f6b0e2b361
add test case for Issue 6029 - Regression(2.053): DMD stack overflow with
invalid alias this

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 05, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6029


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |WORKSFORME


--- Comment #8 from Walter Bright <bugzilla@digitalmars.com> 2012-02-05 00:02:37 PST ---
I couldn't reproduce it, but I added it to the test suite.

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