www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1969] New: Internal error: ..\ztc\cod1.c 1662

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

           Summary: Internal error: ..\ztc\cod1.c 1662
           Product: D
           Version: 2.012
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: minor
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: sardonicpresence gmail.com


The following code results in an Internal error in DMD 2.012:

////////

struct Foo { }

struct Bar
{
  public Foo opSub(Bar other)
  {
    return Foo();
  }
}

void main()
{
  // Removing the following const eliminates the error
  const Foo test = Foo();

  // Causes the error as (Foo + Foo) is undefined
  auto result = test + (Bar() - Bar());

  auto ok1 = test + test;  // No error
  auto ok2 = test + Foo(); // No error
}

////////


-- 
Apr 02 2008
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1969


Don <clugdbug yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug yahoo.com.au
            Summary|Internal error:             |ICE(cod1.c) using undefined
                   |..\ztc\cod1.c 1662          |operator with one const
                   |                            |operand





Simplified test case

struct Bar{ }

const(Bar) baz() { return Bar(); }

void foo() {
  Bar result = Bar() + baz();
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 19 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1969


Don <clugdbug yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
           Severity|minor                       |normal





/* Root cause: BinExp::typeCombine() is checking for an _exact_ match, but
typeMerge() will return success.

PATCH: cast.c BinExp::typeCombine().
Compare the immutable versions of the types, instead of the types themselves.

    if (op == TOKmin || op == TOKadd)
    {
    if (t1->ito == t2->ito && (t1->ty == Tstruct || t1->ty == Tclass))
     goto Lerror;
     }
*/

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 13 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1969


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED





13:33:04 PDT ---
Fixed dmd 2.032

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