*** Headers/Foundation/NSByteOrder.h	Mon Jun  3 14:38:31 2002
--- Headers/Foundation/NSByteOrder.h.new	Mon Jun  3 14:34:23 2002
***************
*** 94,99 ****
--- 94,104 ----
  static inline gsu128
  GSSwapHostI128ToLittle(gsu128 in) __attribute__((unused));
  
+ /* HACK gcc 3.1 with option -O2 generates bad (i386?) code when
+         compiling the following inline functions inside a .m file.
+ 	A call to a dumb function seems to work.
+ 	The function is inside NSData.m */
+ extern void _gcc3_1_hack(void);
  
  static inline gsu16
  GSSwapI16(gsu16 in)
***************
*** 103,108 ****
--- 108,114 ----
      gsu8	byt[2];
    } dst;
    union swap	*src = (union swap*)&in;
+   _gcc3_1_hack();
    dst.byt[0] = src->byt[1];
    dst.byt[1] = src->byt[0];
    return dst.num;
***************
*** 116,121 ****
--- 122,128 ----
      gsu8	byt[4];
    } dst;
    union swap	*src = (union swap*)&in;
+   _gcc3_1_hack();
    dst.byt[0] = src->byt[3];
    dst.byt[1] = src->byt[2];
    dst.byt[2] = src->byt[1];
***************
*** 131,136 ****
--- 138,144 ----
      gsu8	byt[8];
    } dst;
    union swap	*src = (union swap*)&in;
+   _gcc3_1_hack();
    dst.byt[0] = src->byt[7];
    dst.byt[1] = src->byt[6];
    dst.byt[2] = src->byt[5];
***************
*** 150,155 ****
--- 158,164 ----
      gsu8	byt[16];
    } dst;
    union swap	*src = (union swap*)&in;
+   _gcc3_1_hack();
    dst.byt[0] = src->byt[15];
    dst.byt[1] = src->byt[14];
    dst.byt[2] = src->byt[13];
