www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 6029] New: Bus error on invalid code

reply d-bugmail puremagic.com writes:
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



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: -------
May 18 2011
next sibling parent d-bugmail puremagic.com writes:
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



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: -------
Jul 03 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6029




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: -------
Jul 10 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
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



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: -------
Nov 03 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6029




*** 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: -------
Nov 03 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6029




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: -------
Nov 03 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6029




  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: -------
Feb 01 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6029




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: -------
Feb 05 2012
prev sibling parent d-bugmail puremagic.com writes:
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



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: -------
Feb 05 2012