Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
March 10, 2010 [Issue 3919] New: Assertion failure: '0' on line 9944 in file 'expression.c' | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3919 Summary: Assertion failure: '0' on line 9944 in file 'expression.c' Product: D Version: 2.041 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: crimson.magus@gmail.com --- Comment #0 from Aldo Nunez <crimson.magus@gmail.com> 2010-03-09 18:01:17 PST --- The error is in MulExp::semantic. It happens no matter if the multiplication expression is in a template. These are the combinations that fail: IF * ifloat IF * IF ID * idouble ID * ID IR * ireal IR * IR Here's a sample: import std.stdio; typedef ifloat IF; typedef idouble ID; typedef ireal IR; template PrintAddedType(X, Y) { void PrintAddedType() { X x; Y y; writeln( typeid( x ), " ", typeid( y ), " ", typeid( x * y ) ); } } template PrintAddedType(X) { void PrintAddedType() { /* PrintAddedType!(X, ifloat)(); PrintAddedType!(X, idouble)(); PrintAddedType!(X, ireal)(); */ /* PrintAddedType!(X, IF)(); PrintAddedType!(X, ID)(); PrintAddedType!(X, IR)(); */ } } void main() { /* PrintAddedType!(IF)(); PrintAddedType!(ID)(); PrintAddedType!(IR)(); */ IR x; IR y; writeln( typeid( x ), "\t", typeid( y ), "\t", typeid( x * y ) ); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 11, 2010 [Issue 3919] ICE(expression.c, 9944): * or / with typedef ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Aldo Nunez | http://d.puremagic.com/issues/show_bug.cgi?id=3919 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |clugdbug@yahoo.com.au Summary|Assertion failure: '0' on |ICE(expression.c, 9944): * |line 9944 in file |or / with typedef ireal |'expression.c' | --- Comment #1 from Don <clugdbug@yahoo.com.au> 2010-03-10 23:56:01 PST --- Applies to D1 as well. Reduced test case for test suite, for both this bug and the next one: ------- typedef ireal BUG3919; alias typeof(BUG3919.init*BUG3919.init) ICE3919; alias typeof(BUG3919.init/BUG3919.init) ICE3920; ------- Simple: It's not obtaining the base type before checking if it is an imaginary type. PATCH: Expression.c MulExp::semantic, around line 9935. Apply exactly the same to DivExp::semantic, around line 10003, to fix bug 3920. if (!e1->isArrayOperand()) e1->checkArithmetic(); if (!e2->isArrayOperand()) e2->checkArithmetic(); if (type->isfloating()) - { Type *t1 = e1->type; - Type *t2 = e2->type; + { Type *t1 = e1->type->toBasetype(); + Type *t2 = e2->type->toBasetype(); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 13, 2010 [Issue 3919] ICE(expression.c, 9944): * or / with typedef ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Aldo Nunez | http://d.puremagic.com/issues/show_bug.cgi?id=3919 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2010-03-12 20:52:58 PST --- changeset 415 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
April 09, 2010 [Issue 3919] ICE(expression.c, 9944): * or / with typedef ireal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Aldo Nunez | http://d.puremagic.com/issues/show_bug.cgi?id=3919 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #3 from Don <clugdbug@yahoo.com.au> 2010-04-09 13:40:06 PDT --- Fixed DMD1.058 and 2.042. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation