Thread overview
[Bug 90] New: local object.d overrides real object.d causing crash
Apr 07, 2006
d-bugmail
Apr 08, 2006
Thomas Kuehne
Apr 11, 2006
d-bugmail
April 07, 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=90

           Summary: local object.d overrides real object.d causing crash
           Product: D
           Version: 0.151
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: regan@netwin.co.nz


[object.d] (an empty file)

[bug.d]
class A {}
void main() {}

C:\>dmd bug.d
bug.d(1): identifier 'Object' is not defined
bug.d(1): Object is used as a type
Assertion failure: 'b->type->ty == Tclass' on line 286 in file 'class.c'

abnormal program termination

The presence of an object.d file in the local directory overrides the real and required object.d in the dmd directory. This results in weird errors and a compiler crash.

FYI: Removing the class declaration from bug.d avoids the issue.

Suggestions (one or more of these would be nice):
1- Refuse to compile reserved file names.
2- Rename the reserved files to something less likely to collide.
3- Ignore reserved files (and .obj files for them) in any directory but the
expected dmd directory.

Obviously doing #2 only, will only partially solve the problem (there remains a chance it will occur in the future), but, it does make the complete solution, involving #1 or #3, less likely to be a problem when a collision does occur.


-- 

April 08, 2006
d-bugmail@puremagic.com schrieb am 2006-04-07:
> http://d.puremagic.com/bugzilla/show_bug.cgi?id=90
> [object.d] (an empty file)
>
> [bug.d]
> class A {}
> void main() {}
>
> C:\>dmd bug.d
> bug.d(1): identifier 'Object' is not defined
> bug.d(1): Object is used as a type
> Assertion failure: 'b->type->ty == Tclass' on line 286 in file 'class.c'
>
> abnormal program termination
>
> The presence of an object.d file in the local directory overrides the real and required object.d in the dmd directory. This results in weird errors and a compiler crash.

Added to DStress as http://dstress.kuehne.cn/complex/object_02

Thomas


April 11, 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=90


bugzilla@digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #2 from bugzilla@digitalmars.com  2006-04-11 01:33 -------
Fixed 0.153


--