# New Ticket Created by Will Coleda
# Please include the string: [perl #55804]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55804 >
The following pir:
.macro While(code)
.endm
.sub main :main
.While ({
# this comment is required
}
# note missing )
.end
Breaks parrot. If you use the {} syntax, have a non-empty body for it,
but fail to specify the closing paren on the macro invocation, you get
the following stacktrace:
(gdb) bt
#0 0xb7f83402 in __kernel_vsyscall ()
#1 0xb6df12a5 in raise () from /lib/i686/nosegneg/libc.so.6
#2 0xb6df2cf1 in abort () from /lib/i686/nosegneg/libc.so.6
#3 0xb6e2a47c in __libc_message () from /lib/i686/nosegneg/libc.so.6
#4 0xb6e341da in _int_realloc () from /lib/i686/nosegneg/libc.so.6
#5 0xb6e36162 in realloc () from /lib/i686/nosegneg/libc.so.6
#6 0xb7ec008d in read_params (valp=0x0, interp=0x804f040, params=0x82413fc,
macro_name=0x8241470 "While", need_id=0, yyscanner=0x8233958)
at compilers/imcc/imcc.l:944
#7 0xb7ec0854 in expand_macro (interp=0x804f040, name=0x8233f95 "While",
yyscanner=0x8233958) at compilers/imcc/imcc.l:1155
#8 0xb7ebc8b1 in yylex (valp=0xbfc9e308, yyscanner=0x8233958,
interp=0x804f040) at compilers/imcc/imcc.l:538
#9 0xb7eb57cd in yyparse (yyscanner=0x8233958, interp=0x804f040)
at compilers/imcc/imcparser.c:2701
#10 0xb7ec2d8a in compile_to_bytecode (interp=0x804f040,
sourcefile=0xbfc9e9db "foo.pir", output_file=0x0)
at compilers/imcc/main.c:943
#11 0xb7ec315e in imcc_run (interp=0x804f040, sourcefile=0xbfc9e9db "foo.pir",
argc=1, argv=0xbfc9e558) at compilers/imcc/main.c:1046
#12 0x08048978 in main (argc=1, argv=0xbfc9e558) at src/main.c:61
--
Will "Coke" Coleda