D.gnu - _arguments in constructor
- Fredrik Olsson (29/29) Jan 26 2006 Repost from D.bugs, as Dave confirmed that it does not affect dmd 0.144
- Thomas Kuehne (13/41) Feb 23 2006 -----BEGIN PGP SIGNED MESSAGE-----
Repost from D.bugs, as Dave confirmed that it does not affect dmd 0.144
on win nor linux. So I guess it goes as a more GDC specific bug.
This example should not assert I believe:
===
module main;
class Foo {
uint args;
this(...) {
args = _arguments.length;
foreach(TypeInfo typeInfo; _arguments) {
typeInfo.print();
}
}
}
int main(char[][] args) {
auto foo = new Foo(1, 2, 3);
assert(foo.args == 3);
return 0;
}
===
I compile with GDC 0.17, om Mac OS X 10.4.4.
The output is:
TypeInfo[]
int
int
int
So it seams that the hidden variable _arguments is included in itself
for constructors.
// Fredrik Olsson
Jan 26 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Fredrik Olsson schrieb am 2006-01-26:
Repost from D.bugs, as Dave confirmed that it does not affect dmd 0.144
on win nor linux. So I guess it goes as a more GDC specific bug.
This example should not assert I believe:
===
module main;
class Foo {
uint args;
this(...) {
args = _arguments.length;
foreach(TypeInfo typeInfo; _arguments) {
typeInfo.print();
}
}
}
int main(char[][] args) {
auto foo = new Foo(1, 2, 3);
assert(foo.args == 3);
return 0;
}
===
I compile with GDC 0.17, om Mac OS X 10.4.4.
The output is:
TypeInfo[]
int
int
int
So it seams that the hidden variable _arguments is included in itself
for constructors.
Added to DStress as
http://dstress.kuehne.cn/run/v/variadic_argument_12_A.d
http://dstress.kuehne.cn/run/v/variadic_argument_12_B.d
http://dstress.kuehne.cn/run/v/variadic_argument_12_C.d
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFD/sH53w+/yD4P9tIRAmtWAJ0dIL5KxKHNWRr0MHsVDlptm27YHACgrOMK
fjpk8hg243FKSgx41GYAuSw=
=fY5H
-----END PGP SIGNATURE-----
Feb 23 2006








Thomas Kuehne <thomas-dloop kuehne.cn>