As a result of edits to eval.c src/ChangeLog:
2009-08-11  Aidan Kehoe  <kehoea(a)parhasard.net>
 	* eval.c (For):
 	Ignore multiple values when comparing with Qnil, but pass any
 	multiple values back for the last arg.
 	* eval.c (Fand):
 	Ditto.
On my Mac G5 (OS X 10.5.8) I now see
gcc-4.2 -c -Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts -Wpacked
-Wpointer-arith -Wunused-parameter -g -g -Os -pipe -mcpu=970 -mtune=970 -mpim-altivec
-mpowerpc-gpopt -mpowerpc64   -Demacs -I. -I/Users/royar/src/xemacs-hg/src -DHAVE_CONFIG_H
-I/usr/X11/include -I/usr/X11/include/freetype2 -I/opt/local/include -I/usr/X11/include
eval.c
eval.c: In function 'For':
eval.c:845: error: address of register variable 'val' requested
eval.c: In function 'Fand':
eval.c:877: error: address of register variable 'val' requested
make[1]: *** [eval.o] Error 1
make: *** [src] Error 2
The code reads
   REGISTER Lisp_Object val;
   LIST_LOOP_3 (arg, args, tail)
     {
       if (!NILP (IGNORE_MULTIPLE_VALUES (val = Feval (arg))))
I believe the problem is that Lisp_Object is a union in my compilation, 
not an int.
The working version of XEmacs I am running is
XEmacs 21.5  (beta29) "garbanzo" e95ddfd6a409 [Lucid]
(powerpc-apple-darwin9.8.0, Mule) of Tue Aug 11 2009 on 
grendel.frinabulax.org
The source for the above in that version is
       if (!NILP (val = Feval (arg)))
        return val;
Removing "IGNORE_MULTIPLE_VALUES" from the two functions (For and Fand) 
allows the compilation to continue.  I do not know what effects that 
removal has on the stability of the final program.
-- 
Dr. Robert Delius Royar                   Associate Professor of English
Morehead State University                             Morehead, Kentucky
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta