# 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

Reply via email to