Ejemplo n.º 1
0
void
bar ()
{
  arguments a;
  char *buf;
  char *result;
  int uninitialized;
  int count, i;
  int retcount;

  foo (&a);

  switch (a.arg[ind].type)
    {
    case TYPE_SCHAR:
      {
	if (uninitialized == 0)
	  __builtin___snprintf_chk (result, 10, 1, 10, buf, 1, &count);
      }
    case TYPE_LONGDOUBLE:
      {
	long double arg = a.arg[ind].a.a_longdouble;

	if (uninitialized == 0)
	  __builtin___snprintf_chk (result, 10, 1, 10, buf, arg, &count);
      }
    }
}
Ejemplo n.º 2
0
void check_string_literal( FILE* fp, const char* s, char *buf, ... ) {

  char * b;
  va_list ap;
  va_start(ap,buf);

  printf(s); // expected-warning {{format string is not a string literal}}
  vprintf(s,ap); // // no-warning
  fprintf(fp,s); // expected-warning {{format string is not a string literal}}
  vfprintf(fp,s,ap); // no-warning
  asprintf(&b,s); // expected-warning {{format string is not a string lit}}
  vasprintf(&b,s,ap); // no-warning
  sprintf(buf,s); // expected-warning {{format string is not a string literal}}
  snprintf(buf,2,s); // expected-warning {{format string is not a string lit}}
  __builtin___sprintf_chk(buf,0,-1,s); // expected-warning {{format string is not a string literal}}
  __builtin___snprintf_chk(buf,2,0,-1,s); // expected-warning {{format string is not a string lit}}
  vsprintf(buf,s,ap); // no-warning
  vsnprintf(buf,2,s,ap); // no-warning
  vsnprintf(buf,2,global_fmt,ap); // expected-warning {{format string is not a string literal}}
  __builtin___vsnprintf_chk(buf,2,0,-1,s,ap); // no-warning
  __builtin___vsnprintf_chk(buf,2,0,-1,global_fmt,ap); // expected-warning {{format string is not a string literal}}

  // rdar://6079877
  printf("abc"
         "%*d", 1, 1); // no-warning
  printf("abc\
def"
         "%*d", 1, 1); // no-warning
         
  // <rdar://problem/6079850>, allow 'unsigned' (instead of 'int') to be used for both
  // the field width and precision.  This deviates from C99, but is reasonably safe
  // and is also accepted by GCC.
  printf("%*d", (unsigned) 1, 1); // no-warning  
}
Ejemplo n.º 3
0
void check_string_literal( FILE* fp, const char* s, char *buf, ... ) {

  char * b;
  va_list ap;
  va_start(ap,buf);

  printf(s); // expected-warning {{format string is not a string literal}}
  vprintf(s,ap); // // no-warning
  fprintf(fp,s); // expected-warning {{format string is not a string literal}}
  vfprintf(fp,s,ap); // no-warning
  asprintf(&b,s); // expected-warning {{format string is not a string lit}}
  vasprintf(&b,s,ap); // no-warning
  sprintf(buf,s); // expected-warning {{format string is not a string literal}}
  snprintf(buf,2,s); // expected-warning {{format string is not a string lit}}
  __builtin___sprintf_chk(buf,0,-1,s); // expected-warning {{format string is not a string literal}}
  __builtin___snprintf_chk(buf,2,0,-1,s); // expected-warning {{format string is not a string lit}}
  vsprintf(buf,s,ap); // no-warning
  vsnprintf(buf,2,s,ap); // no-warning
  vsnprintf(buf,2,global_fmt,ap); // expected-warning {{format string is not a string literal}}
  __builtin___vsnprintf_chk(buf,2,0,-1,s,ap); // no-warning
  __builtin___vsnprintf_chk(buf,2,0,-1,global_fmt,ap); // expected-warning {{format string is not a string literal}}

  // rdar://6079877
  printf("abc"
         "%*d", (unsigned) 1, 1); // expected-warning {{field width should have type 'int'}}
  printf("abc\
def"
         "%*d", (unsigned) 1, 1); // expected-warning {{field width should have type 'int'}}
  
}
Ejemplo n.º 4
0
void foo (char *s, int i, int j)
{
  __builtin___snprintf_chk (s, i, 1, j, "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" "%d%d%d%d%d%d%d%d%d%d" , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i , i, i, i, i, i, i, i, i, i, i);
}