digitalmars.D.bugs - Assertion failure: mtype.c 3020 (among other things) - forward referencing
- Stewart Gordon (38/38) Jan 12 2005 Using DMD 0.110, Windows 98SE.
- Thomas Kuehne (15/50) Jan 12 2005 -----BEGIN PGP SIGNED MESSAGE-----
Using DMD 0.110, Windows 98SE.
----------
class Qwert {
YUIOP asdfg;
}
enum YUIOP { HJKL, ZXCVB, NM }
----------
enum YUIOP is forward referenced
enum YUIOP is forward referenced
D:\My Documents\Programming\D\Tests\bugs\enum_forward.d(1): enum YUIOP
is forward referenced
Assertion failure: 'sym->memtype' on line 3020 in file 'mtype.c'
----------
It seems to vary whether the compiler hangs, crashes with an illegal
operation or just exits 'normally' having given me this.
The assertion failure seems to happen only if it's used in a class,
struct or union. The following uses of the forward-referenced enum
simply give an error "enum YUIOP is forward referenced" without crashing
the compiler:
- global variable
- return type of global/member function
- parameter of global/member function
- alias or typedef of such a function
Firstly, this is yet another error that's missing its filename and line
number; secondly, it ought to work. (I guess the long-term goal is to
eradicate the words "forward referenced" from DMD's repertoire of errors?)
These uses give no error at all:
- local variable, whether static or not
- return or parameter type of function nested within a function
- alias or typedef of the enum itself (though trying to use the
alias/typedef before the original enum has been declared triggers the
same bugs)
- using one of the enum values
- apparently anything at all if the enum has an underlying type specified
Stewart.
--
My e-mail is valid but not my primary mailbox. Please keep replies on
the 'group where everyone may benefit.
Jan 12 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Added to DStress as
http://dstress.kuehne.cn/run/forward_reference_07.d
http://dstress.kuehne.cn/run/forward_reference_08.d
http://dstress.kuehne.cn/run/forward_reference_09.d
http://dstress.kuehne.cn/run/forward_reference_10.d
http://dstress.kuehne.cn/run/forward_reference_11.d
Thomas
Stewart Gordon schrieb am Wed, 12 Jan 2005 10:11:09 +0000:
Using DMD 0.110, Windows 98SE.
----------
class Qwert {
YUIOP asdfg;
}
enum YUIOP { HJKL, ZXCVB, NM }
----------
enum YUIOP is forward referenced
enum YUIOP is forward referenced
D:\My Documents\Programming\D\Tests\bugs\enum_forward.d(1): enum YUIOP
is forward referenced
Assertion failure: 'sym->memtype' on line 3020 in file 'mtype.c'
----------
It seems to vary whether the compiler hangs, crashes with an illegal
operation or just exits 'normally' having given me this.
The assertion failure seems to happen only if it's used in a class,
struct or union. The following uses of the forward-referenced enum
simply give an error "enum YUIOP is forward referenced" without crashing
the compiler:
- global variable
- return type of global/member function
- parameter of global/member function
- alias or typedef of such a function
Firstly, this is yet another error that's missing its filename and line
number; secondly, it ought to work. (I guess the long-term goal is to
eradicate the words "forward referenced" from DMD's repertoire of errors?)
These uses give no error at all:
- local variable, whether static or not
- return or parameter type of function nested within a function
- alias or typedef of the enum itself (though trying to use the
alias/typedef before the original enum has been declared triggers the
same bugs)
- using one of the enum values
- apparently anything at all if the enum has an underlying type specified
Stewart.
-----BEGIN PGP SIGNATURE-----
iD8DBQFB5Skq3w+/yD4P9tIRAqKMAKDKDVudJFBMYmXlOykoYEimBEnVEgCffF46
UokjPBjrBKO7L0gRLlZn/30=
=JhNf
-----END PGP SIGNATURE-----
Jan 12 2005








Thomas Kuehne <thomas-dloop kuehne.thisisspam.cn>