Bug 698 – variadic arguments have a limit

Status
RESOLVED
Resolution
DUPLICATE
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Linux
Creation time
2006-12-19T09:43:00Z
Last change time
2014-02-15T13:20:20Z
Keywords
ice-on-valid-code
Assigned to
bugzilla
Creator
funisher

Comments

Comment #0 by funisher — 2006-12-19T09:43:40Z
... A small limit at that: template LaLa(E...) { class LaLa { } } void main() { // works new LaLa!("lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala"); // doesn't work new LaLa!("lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala", "lala"); // doesn't work new LaLa!("lalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala", "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala"); } both of those crash the compiler...
Comment #1 by smjg — 2006-12-19T15:55:24Z
DMD 0.178 hasn't been released. Do you mean 0.177 by any chance?
Comment #2 by funisher — 2006-12-19T17:41:42Z
yep, lol, I wasn't paying attention -- I just figured it was the last one on the list
Comment #3 by thomas-dloop — 2006-12-26T08:35:26Z
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [email protected] schrieb am 2006-12-19: > http://d.puremagic.com/issues/show_bug.cgi?id=698 > ... A small limit at that: > > template LaLa(E...) { > class LaLa { > > } > } > > void main() { > > // works > new LaLa!("lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala"); > > // doesn't work > new LaLa!("lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala", > "lala", "lala", "lala", "lala"); > > // doesn't work > new > LaLa!("lalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala", > > "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala"); > } > > both of those crash the compiler... This is most likely the identifier's size restriction of DMD triggered also by the following test cases: http://dstress.kuehne.cn/run/l/large_id_01_A.d http://dstress.kuehne.cn/run/l/large_id_01_C.d As a work-around you can use the GDC compiler(http://dgcc.sourceforge.net/). Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFFkRkhLK5blCcjpWoRAsICAJwPSu+pBUsiYAeHD1l3ZFgz6mQp9wCgqPMW N0d5aQXD64D1xxi9T9CZBLw= =cj8a -----END PGP SIGNATURE-----
Comment #4 by bugzilla — 2006-12-28T16:13:19Z
DMD 0.178 does not crash on Windows, even with much larger identifiers.
Comment #5 by funisher — 2006-12-28T18:03:30Z
I'm running linux... let me know if you need me to compile a debug version of dmd to get the backtrace L3 ~ # dmd Digital Mars D Compiler v0.178 [snipped] L3 ~ # uname -a Linux L3 2.6.18-no2 #7 SMP PREEMPT Wed Nov 8 21:08:35 Local time zone must be set--s i686 Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz GenuineIntel GNU/Linux L3 ~ # cat test.d [above code snipped] L3 ~ # dmd test.d Segmentation fault --------------------- (gdb) run test.d Starting program: /usr/bin/dmd test.d (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) Program received signal SIGSEGV, Segmentation fault. 0x36313663 in ?? () (gdb) bt #0 0x36313663 in ?? () #1 0x56313663 in ?? () #2 0x61613447 in ?? () #3 0x63365f34 in ?? () #4 0x63363136 in ?? () #5 0x345a3136 in ?? () #6 0x614c614c in ?? () #7 0x695f5f36 in ?? () #8 0x5a74696e in ?? () #9 0x08108500 in ?? () #10 0x0819ef00 in ?? () #11 0x778c9568 in ?? () #12 0x080928da in ?? () #13 0x0000000d in ?? () #14 0x0819ef00 in ?? () #15 0x00000000 in ?? () (gdb)
Comment #6 by thomas-dloop — 2007-02-27T18:36:34Z
*** This bug has been marked as a duplicate of 825 ***