unitialised error

llewelly@xmission.com llewelly@xmission.com
Thu Jul 1 16:22:00 GMT 2004


Ken Foskey <foskey@optushome.com.au> writes:

> The following code gives me an uninitialised warning on nCol.  There is
> no possible default clause for this one.
> 
> switch( nXIndex & 3 )
> {
> 	case 0 :
> 		nCol = *pTmp >> 6;
> 		break;
> 	case 1 :
> 		nCol = ( *pTmp >> 4 ) & 0x03 ;
> 		break;
> 
> 	case 2 :
> 		nCol = ( *pTmp >> 2 ) & 0x03;
> 		break;
> 	case 3 :
> 		nCol = ( *pTmp++ ) & 0x03;
> 		break;
> }

What version of gcc are you using? I don't get any such warning for this
    code with gcc 2.95.3, 3.3.3 or 3.4 .

I completed it like this:

int main()
  {
    int nXIndex;
    int nCol;
    int Tmp;
    int *pTmp;
    switch( nXIndex & 3 )
    {
      case 0 :
        nCol = *pTmp >> 6;
        break;
      case 1 :
        nCol = ( *pTmp >> 4 ) & 0x03 ;
        break;

      case 2 :
        nCol = ( *pTmp >> 2 ) & 0x03;
        break;
      case 3 :
        nCol = ( *pTmp++ ) & 0x03;
        break;
    }

    Tmp= nCol;

  }



More information about the Gcc-help mailing list