On 10/24/25 12:15 PM, Grisha Levit wrote:
On Fri, Oct 24, 2025, 09:04 Chet Ramey <[email protected]> wrote:On 10/23/25 11:08 PM, Grisha Levit wrote:Looks like circular namerefs might need something similar as well: f() { local -n x; local -p x local -A x; local -p x (local x=(z)) } x=x f bash: local: x: not found bash: warning: x: circular name reference bash: warning: x: circular name reference declare -Anx x=() Segmentation fault ( local x=(z) )Thanks for the report. I get ./x2: line 2: local: x: not found ./x2: line 3: warning: x: circular name reference ./x2: line 3: warning: x: circular name reference declare -Ax x=() with the latest devel branch, using interactive and non-interactive shells.I'm also testing with commit 403b32fa. Note that `x=x' is in the temporary environment of f. ./bash -c 'f() { local -n x; local -A x; local -p x; (local x=(z)); }; x=x f' ./bash: line 1: warning: x: circular name reference ./bash: line 1: warning: x: circular name reference declare -Anx x=() ./bash: line 1: 10701 Segmentation fault ( local x=(z) )
I just freshly cloned the repository on macOS, switched to the devel
branch, built it and:
$ ./bash -c 'f() { local -n x; local -A x; local -p x; (local x=(z)); }; x=x f'
./bash: line 1: warning: x: circular name reference
./bash: line 1: warning: x: circular name reference
declare -Ax x=()
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/
OpenPGP_signature.asc
Description: OpenPGP digital signature
