digitalmars.D.bugs - [Issue 3996] New: Algebraic with struct crashes compiler
- d-bugmail puremagic.com (21/21) Mar 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (20/20) Jun 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (8/8) Jun 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (6/6) Jun 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (10/10) Jul 13 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (32/32) Sep 06 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
- d-bugmail puremagic.com (12/12) Sep 11 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3996
http://d.puremagic.com/issues/show_bug.cgi?id=3996
           Summary: Algebraic with struct crashes compiler
           Product: D
           Version: 2.041
          Platform: x86_64
        OS/Version: Mac OS X
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: michel.fortin michelf.com
09:51:37 EDT ---
DMD 2.041 and 2.042 on Mac OS X crash with this input. It was working a few
versions before, but I don't know exactly at which point it broke.
import std.variant;
struct A {}
alias Algebraic!(A) sts;
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Mar 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996
Don <clugdbug yahoo.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
                 CC|                            |clugdbug yahoo.com.au
           Platform|x86_64                      |All
            Summary|Algebraic with struct       |ICE Regression(2.041):
                   |crashes compiler            |Passing struct as AA
                   |                            |template parameter
                   |                            |(Algebraic with struct)
         OS/Version|Mac OS X                    |All
Reduced test case shows it's a regression from AAs becoming a library type.
template ICE3996(T : V[K], K, V) {}
struct Bug3996 {}
static assert(!is( ICE3996!(Bug3996) ));
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Jun 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996
Don <clugdbug yahoo.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|major                       |regression
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Jun 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996 I think the root cause of this is bug 4269. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
 Jun 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996
Don <clugdbug yahoo.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rsinfu gmail.com
*** Issue 4449 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: -------
 Jul 13 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996
Don <clugdbug yahoo.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
This turns out to be simple. When there's an error in the AA parameters, it
should not continue to instantiate the template.
There's no "error declaration", so return a struct of type TError. Not sure if
it's OK to give it no name.
(Would also be possible to return NULL in this case, but then everything that
calls it would need to be changed, to prevent segfaults).
PATCH(mtype.c): Line 3966
StructDeclaration *TypeAArray::getImpl()
{
    // Do it lazily
    if (!impl)
    {
        Type *index = this->index;
        Type *next = this->next;
        if (index->reliesOnTident() || next->reliesOnTident())
        {
            error(loc, "cannot create associative array %s", toChars());
            index = terror;
            next = terror;
+            StructDeclaration *s = new StructDeclaration(0, NULL);
+            s->type = terror;
+            return s;
        }
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 06 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3996
Walter Bright <bugzilla digitalmars.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED
14:17:47 PDT ---
http://www.dsource.org/projects/dmd/changeset/672
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 11 2010








 
  
  
 
 d-bugmail puremagic.com
 d-bugmail puremagic.com 