digitalmars.D.bugs - IPF on certain invalid code involving a const
- Stewart Gordon (40/40) Sep 19 2005 Using DMD 0.131, Windows 98SE.
- zwang (8/46) Sep 19 2005 Confirmed on Windows XP.
- =?ISO-8859-1?Q?Thomas_K=FChne?= (17/55) Sep 20 2005 -----BEGIN PGP SIGNED MESSAGE-----
Using DMD 0.131, Windows 98SE. ---------- void main() { const char[] qwert = "\U000579bd"; yuiop(asdfg(qwert)); } void yuiop(char[] jhkl) {} ---------- D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): undefined identifier asdfg D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function expected before (), not asdfg of type int D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function ipf1.yuiop (char[]) does not match argument types (int) ---------- DMD caused an invalid page fault in module DMD.EXE at 0167:0040e42b. Registers: EAX=00000000 CS=0167 EIP=0040e42b EFLGS=00010246 EBX=00886114 SS=016f ESP=0071fa68 EBP=0073b3dc ECX=000579bd DS=016f ESI=0073b3dc FS=4877 EDX=004cd3d2 ES=016f EDI=0073a248 GS=455e Bytes at CS:EIP: 66 f7 04 4a 57 01 74 1a ff 74 24 0c 8b ce e8 f6 Stack dump: 00886114 00000000 00000004 000579bd 0040c5ff 0073b3dc 00000000 0073ce4c 00000001 0073b3dc 0073b3dc 00411a36 0073b3dc 0073a248 0073b3dc 00735110 ---------- Seems to crash only if the string is declared as const and the initialiser contains a codepoint beyond U+FFFF, whether notated with \U, \x or x"...". Stewart. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d- s:- C++ a->--- UB P+ L E W++ N+++ o K- w++ O? M V? PS- PE- Y? PGP- t- 5? X? R b DI? D G e++>++++ h-- r-- !y ------END GEEK CODE BLOCK------ My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Sep 19 2005
Confirmed on Windows XP. Here's a reduced test case: <code> void main(char[][] a){ main("\U00010000"); } </code> Stewart Gordon wrote:Using DMD 0.131, Windows 98SE. ---------- void main() { const char[] qwert = "\U000579bd"; yuiop(asdfg(qwert)); } void yuiop(char[] jhkl) {} ---------- D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): undefined identifier asdfg D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function expected before (), not asdfg of type int D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function ipf1.yuiop (char[]) does not match argument types (int) ---------- DMD caused an invalid page fault in module DMD.EXE at 0167:0040e42b. Registers: EAX=00000000 CS=0167 EIP=0040e42b EFLGS=00010246 EBX=00886114 SS=016f ESP=0071fa68 EBP=0073b3dc ECX=000579bd DS=016f ESI=0073b3dc FS=4877 EDX=004cd3d2 ES=016f EDI=0073a248 GS=455e Bytes at CS:EIP: 66 f7 04 4a 57 01 74 1a ff 74 24 0c 8b ce e8 f6 Stack dump: 00886114 00000000 00000004 000579bd 0040c5ff 0073b3dc 00000000 0073ce4c 00000001 0073b3dc 0073b3dc 00411a36 0073b3dc 0073a248 0073b3dc 00735110 ---------- Seems to crash only if the string is declared as const and the initialiser contains a codepoint beyond U+FFFF, whether notated with \U, \x or x"...". Stewart.
Sep 19 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stewart Gordon schrieb:Using DMD 0.131, Windows 98SE. ---------- void main() { const char[] qwert = "\U000579bd"; yuiop(asdfg(qwert)); } void yuiop(char[] jhkl) {} ---------- D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): undefined identifier asdfg D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function expected before (), not asdfg of type int D:\My Documents\Programming\D\Tests\bugs\ipf1.d(4): function ipf1.yuiop (char[]) does not match argument types (int) ---------- DMD caused an invalid page fault in module DMD.EXE at 0167:0040e42b. Registers: EAX=00000000 CS=0167 EIP=0040e42b EFLGS=00010246 EBX=00886114 SS=016f ESP=0071fa68 EBP=0073b3dc ECX=000579bd DS=016f ESI=0073b3dc FS=4877 EDX=004cd3d2 ES=016f EDI=0073a248 GS=455e Bytes at CS:EIP: 66 f7 04 4a 57 01 74 1a ff 74 24 0c 8b ce e8 f6 Stack dump: 00886114 00000000 00000004 000579bd 0040c5ff 0073b3dc 00000000 0073ce4c 00000001 0073b3dc 0073b3dc 00411a36 0073b3dc 0073a248 0073b3dc 00735110 ---------- Seems to crash only if the string is declared as const and the initialiser contains a codepoint beyond U+FFFF, whether notated with \U, \x or x"...". Stewart.Added to DStress as http://dstress.kuehne.cn/nocompile/c/const_24_A.d http://dstress.kuehne.cn/nocompile/c/const_24_B.d http://dstress.kuehne.cn/nocompile/c/const_24_C.d http://dstress.kuehne.cn/nocompile/c/const_24_D.d http://dstress.kuehne.cn/nocompile/c/const_24_E.d http://dstress.kuehne.cn/nocompile/c/const_24_F.d http://dstress.kuehne.cn/nocompile/c/const_24_G.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFDL8m93w+/yD4P9tIRArnUAJ46HG/mkeC/RUWeMMsqdkJEMzN6dQCeKp7O CRpQLITt1lO3hCeEid5jxPo= =Am4S -----END PGP SIGNATURE-----
Sep 20 2005