Does anyone know what this warning means and if I need to worry about it? Maybe also how to fix it?
Here's the code it's complaining about:
Code:
void DTRACE( int level,
const char* fmt,
... )
{
#if defined( DEBUG ) && defined( ANSI )
va_list pArgs;
char* pArg;
char cArg;
char c;
int iArg;
long lArg;
if ( GetDebugLevel() < level )
{
return;
}
va_start( pArgs ); /**** Warning is here. ****/
while ( (c = *fmt++) )
{
if ( c != '%' )
{
putchar( c );
continue;
}
c = *fmt++;
switch ( c )
{
case 'c':
cArg = va_arg( pArgs, int );
putchar( cArg );
break;
case 'i':
iArg = va_arg( pArgs, int );
printf( "%d", iArg );
break;
case 'l':
lArg = va_arg( pArgs, long );
printf( "%ld", lArg );
break;
case 'u':
c = *fmt++;
switch ( c )
{
case 'c':
cArg = va_arg( pArgs, unsigned int );
putchar( cArg );
break;
case 'i':
iArg = va_arg( pArgs, unsigned int );
printf( "%ud", iArg );
break;
case 'l':
lArg = va_arg( pArgs, unsigned long );
printf( "%lu", lArg );
break;
default:
puts( "Error! Unknown unsigned format specifier in DTRACE()!" );
break;
}
break;
case 's':
pArg = va_arg( pArgs, char* );
puts( pArg );
break;
default:
puts( "Error! Unknown format specifier in DTRACE()!" );
break;
}
} /* End of while */
va_end( pArgs );
#endif
}