For those who asked: http://lists.apple.com/archives/xcode-users/2003/Dec/msg00050.html has a short explanation why this may be a problem. The solution is either to change the scope of the variables or use the C key word volatile.
Olga 2012/4/5 ольга крыжановская <[email protected]>: > David, Glenn, could you look at the following warnings gcc4.6 gave me > when I compiled ast-ksh.2012-02-29 with-Wclobbered? > > The gcc man page defines -Wclobbered as > -Wclobbered > Warn for variables that might be changed by longjmp or > vfork. This warning is also enabled by -Wextra. > > Some of the warnings may be bogus but I bet there are at least 1 or 2 > which present serious hazards and need to be protected using the C > volatile key word. > > ==================================== > src/cmd/ksh93/bltins/getopts.c:60:13: warning: variable 'extended' > might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/misc.c:216:19: warning: variable 'argsave' might > be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:204:46: warning: argument 'names' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:204:57: warning: argument 'fd' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:204:65: warning: argument 'flags' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:208:21: warning: variable 'np' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:209:18: warning: variable 'name' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:210:20: warning: variable 'iop' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:219:18: warning: variable 'keytrap' might > be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/read.c:222:8: warning: variable 'delim' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/typeset.c:1128:56: warning: argument 'troot' > might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/bltins/typeset.c:1132:15: warning: variable 'r' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/edit/emacs.c:178:55: warning: argument 'scend' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/edit/emacs.c:178:66: warning: argument 'reedit' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/edit/emacs.c:185:20: warning: variable 'ep' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/edit/vi.c:217:75: warning: argument 'reedit' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/edit/vi.c:222:17: warning: variable 'vp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/fault.c:449:14: warning: variable 'savxit' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/io.c:1686:27: warning: variable 'newfd' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/macro.c:134:45: warning: argument 'string' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/main.c:384:60: warning: argument 'iop' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/main.c:384:77: warning: argument 'fno' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/parse.c:742:21: warning: variable 't' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/parse.c:752:6: warning: variable 'nargs' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/subshell.c:458:51: warning: argument 'flags' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1199:20: warning: variable 'was_vi' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1199:30: warning: variable 'was_emacs' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1199:43: warning: variable 'was_gmacs' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1475:8: warning: variable 'no_fork' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1660:21: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1780:10: warning: variable 'pid' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:1783:20: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:2139:20: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:2273:20: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3240:16: warning: variable 'nsig' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3248:11: warning: variable 'savstak' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3249:18: warning: variable 'fp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3250:19: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3463:46: warning: argument 'argv' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3472:6: warning: variable 'n' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3492:19: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3678:18: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:3679:7: warning: variable 'otype' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:544:39: warning: argument 'mode' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:551:18: warning: variable 'buffp' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:874:38: warning: argument 't' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:882:18: warning: variable 'com0' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:883:9: warning: variable 'errorflg' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:884:9: warning: variable 'execflg' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:894:18: warning: variable 'com' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:897:8: warning: variable 'was_interactive' > might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:900:8: warning: variable 'echeck' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/cmd/ksh93/sh/xec.c:930:9: warning: variable 'command' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/lib/libast/comp/spawnveg.c:156:60: warning: argument 'envv' might > be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/lib/libast/comp/spawnveg.c:156:74: warning: argument 'pgid' might > be clobbered by 'longjmp' or 'vfork' [-Wclobbered] > src/lib/libast/comp/spawnveg.c:159:8: warning: variable 'n' might be > clobbered by 'longjmp' or 'vfork' [-Wclobbered] > ==================================== > > Olga > -- > , _ _ , > { \/`o;====- Olga Kryzhanovska -====;o`\/ } > .----'-/`-/ [email protected] \-`\-'----. > `'-..-| / http://twitter.com/fleyta \ |-..-'` > /\/\ Solaris/BSD//C/C++ programmer /\/\ > `--` `--` -- , _ _ , { \/`o;====- Olga Kryzhanovska -====;o`\/ } .----'-/`-/ [email protected] \-`\-'----. `'-..-| / http://twitter.com/fleyta \ |-..-'` /\/\ Solaris/BSD//C/C++ programmer /\/\ `--` `--` _______________________________________________ ast-developers mailing list [email protected] https://mailman.research.att.com/mailman/listinfo/ast-developers
