fix for namerefs referencing an unset array index with nounset enabled; addition to buildconf.h.in for C23 compilers

This commit is contained in:
Chet Ramey
2025-05-30 10:11:03 -04:00
parent 870ad4c92b
commit dbe4256d5e
24 changed files with 2285 additions and 3263 deletions
+12
View File
@@ -0,0 +1,12 @@
# issues with nounset and references to nameref variables whose value
# contains an unset variable
$THIS_SH -uc 'a=() k=; "${a[k]}"' || echo ok 1
$THIS_SH -uc 'declare -n r0=b ; : "$r0"' || echo ok 2
$THIS_SH -uc 'a=() k=; declare -n r='a[k]' ; : "$r"' || echo ok 3
$THIS_SH -uc 'declare -n r='a[k]' ; : "$r"' || echo ok 4
$THIS_SH -uc 'a=() k=; declare -n r='a[@]' ; : "$r"' && echo ok 5
$THIS_SH -uc 'declare -n r='a[@]' ; : "$r"' && echo ok 6
$THIS_SH -uc 'a=() k=; declare -n r='a[*]' ; : "$r"' && echo ok 7
$THIS_SH -uc 'declare -n r='a[*]' ; : "$r"' && echo ok 8