As reported by Fabrice Popineau (see
http://list-archive.xemacs.org/xemacs-beta/200502/msg00072.html), it's
not legal to declare variables inline in C without braces.  YMMY, some
compilers are pickier than others.
src/ChangeLog addition:
2005-02-04  Vin Shelton  <acs(a)xemacs.org>
	* lread.c (check_if_suppressed, check_if_suppressed):
	EXTERNAL_LIST_LOOP_2 declares variables and must be enclosed in
	braces.  Thanks, Fabrice.
21.5 source patch:
Diff command:   cvs -q diff -u
Files affected: src/lread.c
Index: src/lread.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/lread.c,v
retrieving revision 1.74
diff -a -u -u -r1.74 lread.c
--- src/lread.c	2005/02/03 07:11:27	1.74
+++ src/lread.c	2005/02/04 11:51:59
@@ -358,26 +358,28 @@
   else if (len >= 3 && !qxestrcmp_ascii (nonreloc + len - 3,
".el"))
     len -= 3;
 
-  EXTERNAL_LIST_LOOP_2 (acons, Vload_suppress_alist)
-    {
-      if (CONSP (acons) && STRINGP (XCAR (acons)))
-	{
-	  Lisp_Object name = XCAR (acons);
-	  if (XSTRING_LENGTH (name) == len &&
-	      !memcmp (XSTRING_DATA (name), nonreloc, len))
-	    {
-	      struct gcpro gcpro1;
-	      Lisp_Object val;
+  {
+      EXTERNAL_LIST_LOOP_2 (acons, Vload_suppress_alist)
+      {
+	  if (CONSP (acons) && STRINGP (XCAR (acons)))
+	  {
+	      Lisp_Object name = XCAR (acons);
+	      if (XSTRING_LENGTH (name) == len &&
+		  !memcmp (XSTRING_DATA (name), nonreloc, len))
+	      {
+		  struct gcpro gcpro1;
+		  Lisp_Object val;
 
-	      GCPRO1 (reloc);
-	      val = Feval (XCDR (acons));
-	      UNGCPRO;
+		  GCPRO1 (reloc);
+		  val = Feval (XCDR (acons));
+		  UNGCPRO;
 
-	      if (!NILP (val))
-		return 1;
-	    }
-	}
-    }
+		  if (!NILP (val))
+		      return 1;
+	      }
+	  }
+      }
+  }
 
   return 0;
 }