Fix a nasty bug: the 'c' component of StgUnion was declared as type
StgChar, which sounds reasonable, but meant that when assigning a char
to R1 gcc would correctly arrange to only overwrite the low byte
rather than zero-extending the value. We assume elsewhere that when
R1 contains a char that the upper 24 bits are zero, so this was wrong.
This bug must have been around for a *long* time, strange that it only
just showed up. <shrug>
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $Id: StgTypes.h,v 1.11 2000/04/13 15:37:11 panne Exp $
+ * $Id: StgTypes.h,v 1.12 2000/06/12 11:04:12 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*
* (c) The GHC Team, 1998-1999
*
typedef union {
StgWord w;
StgAddr a;
typedef union {
StgWord w;
StgAddr a;
StgFloat f;
StgInt i;
StgPtr p;
StgFloat f;
StgInt i;
StgPtr p;