In an unrelated matter: 'integer -a a ; integer x ; (( a[x++]++ )) ;
print "$...@]}"' dumps core on Solaris on SPARC hardware with this
stack trace:
 0000000100081d54 nv_getval (1003682c0, 100345430, 1003682f8,
100340ba0, 0, 0) + 594
 0000000100026c78 nv_getv (1003682c0, 100368440, 1, 0, 0, 0) + 320
 0000000100037cfc array_getval (1003682c0, 100368440, 1000000, 0, 0, 0) + 124
 0000000100026ac4 nv_getv (1003682c0, 100368440, 0, 61, 0,
ffffffff7fffe529) + 16c
 0000000100081960 nv_getval (1003682c0, 0, 800000, 0, 0, 0) + 1a0
 000000010007062c varsub (1003599a0, 6, 0, 0, 0, 0) + 1d04
 000000010006c2f4 copyto (1003599a0, 0, 0, 100368440, 0, 0) + e1c
 000000010006a32c sh_macexpand (100340420, 100360b60,
ffffffff7fffede8, 0, 20, 0) + 39c
 00000001000e4f98 arg_expand (100340420, 100360b60, ffffffff7fffede8,
0, 3fff0000, ffffffff7fffeb0c) + 1c8
 00000001000e4898 sh_argbuild (100340420, ffffffff7ffff144, 100360b20,
0, 0, 0) + 148
 00000001000ab678 sh_exec (100360b20, 5, 0, 0, 0, 0) + 468
 00000001000af034 sh_exec (100360bc0, 25, 0, 100362e50, 0, 0) + 3e24
 0000000100025e44 exfile (100340420, 100368100, 7ffffa88, 0, 5, 80808080) + 10ac
 0000000100024d4c sh_main (3, ffffffff7ffffa68, 0, ffffffff7ffff988,
0, 0) + 100c
 000000010002318c main (3, ffffffff7ffffa68, ffffffff7ffffa88, 1f5940,
1c80, 1c00) + 5c
 00000001000230fc _start (0, 0, 0, 0, 0, 0) + 17c

On Wed, Jan 13, 2010 at 10:43 AM, Stephane Chazelas
<[email protected]> wrote:
> That problem has just been reported to the bash and zsh mailing
> lists and it seems ksh93 is also affected.
>
> In ((a[subscript]++)), ((a[subscript]+=x)), ((a[subscript]*=x))...
> it seems subscript is expanded twice which can have nasty side
> effects such as
>
> $ ksh -c 'x=0; ((a[++x]++)); echo $x'
> 2
> ~$ ksh -c 'for ((i=0;i<1000;i++)); do ((a[RANDOM%2]++)); done; echo 
> $((a[0]+a[1]))'
> 953
> ~$ ksh -c 'for ((i=0;i<1000;i++)); do ((a[RANDOM%2]++)); done; echo 
> $((a[0]+a[1]))'
> 985
> ~$ ksh -c 'for ((i=0;i<1000;i++)); do ((a[RANDOM%2]++)); done; echo 
> $((a[0]+a[1]))'
> 1059
>
> --
> Stephane
> _______________________________________________
> ast-developers mailing list
> [email protected]
> https://mailman.research.att.com/mailman/listinfo/ast-developers
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     [email protected]   \-`\-'----.
 `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
      /\/\                                     /\/\
      `--`                                      `--`
_______________________________________________
ast-developers mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to