digitalmars.D.bugs - [Issue 3493] New: Segfault(cast.c) Forward reference with type inference, D1 only.
- d-bugmail puremagic.com (21/21) Nov 10 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3493
- d-bugmail puremagic.com (30/30) Nov 17 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3493
- d-bugmail puremagic.com (21/21) Aug 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3493
- d-bugmail puremagic.com (12/12) Aug 27 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3493
- d-bugmail puremagic.com (11/11) Aug 30 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3493
- d-bugmail puremagic.com (11/11) Nov 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3493
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Summary: Segfault(cast.c) Forward reference with type
inference, D1 only.
Product: D
Version: 1.050
Platform: Other
OS/Version: Windows
Status: NEW
Keywords: ice-on-valid-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: clugdbug yahoo.com.au
This is the second bug reported in bug 2080.
const bar = foo;
const int * foo = null;
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 10 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
This doesn't segfault in D2 because in expression.c, VarExp::semantic(),
line 4152, the initializer part is commented out.
VarDeclaration *v = var->isVarDeclaration();
if (v)
{
+#if 0
if ((v->isConst() || v->isInvariant()) &&
type->toBasetype()->ty != Tsarray && v->init)
{
ExpInitializer *ei = v->init->isExpInitializer();
if (ei)
{
//ei->exp->implicitCastTo(sc, type)->print();
return ei->exp->implicitCastTo(sc, type);
}
}
+#endif
v->checkNestedReference(sc, loc);
#if DMDV2
Doing the same thing in D1 fixes this bug, and the DMD test suite still passes.
However I'm not sure why the code above is unnecessary.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 17 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Here's a more minimal patch. It shouldn't be implicitly casting the
initializer, if it hasn't run semantic on it yet.
expression.c, VarExp::semantic(), line 3955.
if (v)
{
if (v->isConst() && v->type && type->toBasetype()->ty != Tsarray &&
v->init)
{
ExpInitializer *ei = v->init->isExpInitializer();
- if (ei)
+ if (ei && ei->exp->type)
{
+ assert(ei->exp->type);
//ei->exp->implicitCastTo(sc, type)->print();
return ei->exp->implicitCastTo(sc, type);
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
22:11:46 PDT ---
http://www.dsource.org/projects/dmd/changeset/637
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 27 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
13:26:04 PDT ---
Undoing the patch for 190 also breaks this.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 30 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3493
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
Fixed dmd 1.064.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 15 2010









d-bugmail puremagic.com 