[Issue 11612] Inconsistent error on negative new array size

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sat Apr 19 07:11:47 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=11612

--- Comment #2 from Andrej Mitrovic <andrej.mitrovich at gmail.com> ---
Actually nevermind my last comment. AFAICT an IntegerExp ends up having
type->ty equal Tuns32 instead of Tint32. From the callstack it seems IntegerExp
is constructed with this from one of these calls:

011ee64c 004dfbd4 image00400000!IntegerExp::IntegerExp+0x54
[C:\dmd-git\dmd2\src\dmd\src\expression.c @ 2592]
011ee708 004c4404 image00400000!Neg+0x1ad
[C:\dmd-git\dmd2\src\dmd\src\constfold.c @ 88]
011ee738 00481c75 image00400000!OptimizeVisitor::visit+0x54
[C:\dmd-git\dmd2\src\dmd\src\optimize.c @ 263]
011ee748 004c217f image00400000!NegExp::accept+0x15
[C:\dmd-git\dmd2\src\dmd\src\expression.h @ 976]
011ee77c 004b4855 image00400000!Expression_optimize+0x41
[C:\dmd-git\dmd2\src\dmd\src\optimize.c @ 1224]
011ee83c 00425e29 image00400000!ImplicitConvTo::visit+0x65
[C:\dmd-git\dmd2\src\dmd\src\cast.c @ 181]
011ee84c 00425c85 image00400000!Visitor::visit+0x15
[C:\dmd-git\dmd2\src\dmd\src\visitor.h @ 541]
011ee85c 00481c75 image00400000!Visitor::visit+0x15
[C:\dmd-git\dmd2\src\dmd\src\visitor.h @ 541]
011ee86c 004aff6b image00400000!NegExp::accept+0x15
[C:\dmd-git\dmd2\src\dmd\src\expression.h @ 976]
011ee894 004b275b image00400000!implicitConvTo+0x39
[C:\dmd-git\dmd2\src\dmd\src\cast.c @ 1222]
011ee8e8 00425e29 image00400000!ImplicitCastTo::visit+0x1f
[C:\dmd-git\dmd2\src\dmd\src\cast.c @ 54]
011ee8f8 00425c85 image00400000!Visitor::visit+0x15
[C:\dmd-git\dmd2\src\dmd\src\visitor.h @ 541]
011ee908 00481c75 image00400000!Visitor::visit+0x15
[C:\dmd-git\dmd2\src\dmd\src\visitor.h @ 541]
011ee918 004aff2b image00400000!NegExp::accept+0x15
[C:\dmd-git\dmd2\src\dmd\src\expression.h @ 976]
011ee94c 00468267 image00400000!implicitCastTo+0x43
[C:\dmd-git\dmd2\src\dmd\src\cast.c @ 145]
011eeb8c 004c8b2b image00400000!NewExp::semantic+0x1378
[C:\dmd-git\dmd2\src\dmd\src\expression.c @ 5122]
011eebc4 0049448a image00400000!ExpInitializer::inferType+0x1c
[C:\dmd-git\dmd2\src\dmd\src\init.c @ 920]
011eef0c 00469e65 image00400000!VarDeclaration::semantic+0x21e
[C:\dmd-git\dmd2\src\dmd\src\declaration.c @ 857]
011eef60 004c973e image00400000!DeclarationExp::semantic+0xa3
[C:\dmd-git\dmd2\src\dmd\src\expression.c @ 5858]

I guess I could just emit an error in NewExp::semantic or something, we'll
see..

--


More information about the Digitalmars-d-bugs mailing list